<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Rich:Python開發者的完美終端工具

科技綠洲 ? 來源:Python實用寶典 ? 作者:Python實用寶典 ? 2023-10-31 15:33 ? 次閱讀

Rich 是一個 Python 庫,可以為你在終端中提供富文本和漂亮、精美的格式。

使用 Rich API 可以很容易的在終端輸出添加各種顏色和不同風格。它可以繪制漂亮的表格,進度條,markdown,突出顯示語法的源代碼及回溯等等,優秀的功能不勝枚舉。

圖片

我已經將本文全部示例存放在網盤中,在Python實用寶典公眾號后臺回復 rich示例 可以下載全部示例。

1.Rich 兼容性

Rich 適用于 Linux,OSX 和 Windows??膳c新的 Windows 終端一起使用,Windows 的經典終端僅限 8 種顏色。

Rich 還可以與** Jupyter NoteBook **一起使用,而無需其他配置。

2.Rich 安裝說明

開始之前,你要確保Python和pip已經成功安裝在電腦上,如果沒有,可以訪問這篇文章:超詳細Python安裝指南 進行安裝。

**(可選1) **如果你用Python的目的是數據分析,可以直接安裝Anaconda:Python數據分析與挖掘好幫手—Anaconda,它內置了Python和pip.

**(可選2) **此外,推薦大家用VSCode編輯器,它有許多的優點:Python 編程的最好搭檔—VSCode 詳細指南。

請選擇以下任一種方式輸入命令安裝依賴

  1. Windows 環境 打開 Cmd (開始-運行-CMD)。
  2. MacOS 環境 打開 Terminal (command+空格輸入Terminal)。
  3. 如果你用的是 VSCode編輯器 或 Pycharm,可以直接使用界面下方的Terminal.
pip install rich

3.Rich 的 Print 功能

想毫不費力地將 Rich 的輸出功能添加到你的Python腳本程序中,你只需導入 rich print 方法,該方法和其他 Python 的自帶功能的參數類似。你可以試試:

from rich import print

print("Hello, [bold magenta]World[/bold magenta]!", ":vampire:", locals())

圖片

可以看到,基于 rich 的 print 方法輸出的內容都是帶顏色、帶重點的,相比于Python自帶的 print 有明顯的優勢。

4.自定義 Console 控制臺輸出

想要對 Rich 終端內容進行更多的自定義設置,你需要導入并構造一個控制臺對象:

from rich.console import Console

console = Console()

Console 對象含有一個 print 方法,它的界面與 python 內置的 print 功能相似。你可以試試:

console.print("Hello", "World!")

你可能已經料到,這時終端上會顯示“ Hello World!”,請注意,與內置的“打印”功能不同,Rich 會將文字自動換行以適合終端寬度。

有幾種方法可以為輸出添加自定義顏色和樣式。你可以通過添加 style 關鍵字參數來為整個輸出設置樣式。例子如下:

console.print("Hello", "World!", style="bold red")

輸出如下圖:

圖片

這個范例一次只設置了一行文字的樣式。如果想獲得更細膩更復雜的樣式,Rich 可以渲染一個特殊的標記,其語法類似于 bbcode。示例如下:

console.print("Where there is a [bold cyan]Will[/bold cyan] there [u]is[/u] a [i]way[/i].")

圖片

5.Console 控制臺記錄

Console 對象具有一個 log() 方法,該方法具有與 print() 類似的界面,除此之外,還能顯示當前時間以及被調用的文件和行。

默認情況下,Rich 將針對 Python 結構和 repr 字符串進行語法突出顯示。如果你記錄一個集合(如字典或列表),Rich 會把它漂亮地打印出來,使其切合可用空間。下面是其中一些功能的示例:

from rich.console import Console
console = Console()

test_data = [
    {"jsonrpc": "2.0", "method": "sum", "params": [None, 1, 2, 4, False, True], "id": "1",},
    {"jsonrpc": "2.0", "method": "notify_hello", "params": [7]},
    {"jsonrpc": "2.0", "method": "subtract", "params": [42, 23], "id": "2"},
]

def test_log():
    enabled = False
    context = {
        "foo": "bar",
    }
    movies = ["Deadpool", "Rise of the Skywalker"]
    console.log("Hello from", console, "!")
    console.log(test_data, log_locals=True)


test_log()

以上范例的輸出如下:

圖片

注意其中的 log_locals 參數會輸出一個表格,該表格包含調用 log 方法的局部變量。

log 方法既可用于將長時間運行應用程序(例如服務器)的日志記錄到終端,也可用于輔助調試。

Logging 處理程序

你還可以使用內置的處理類來對 Python 日志記錄模塊的輸出進行格式化和著色。下面是輸出示例:

圖片

6. 表情符號

將名稱放在兩個冒號之間即可在控制臺輸出中插入表情符號。示例如下:

>> > console.print(":smiley: :vampire: :pile_of_poo: :thumbs_up: :raccoon:")
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • WINDOWS
    +關注

    關注

    3

    文章

    3467

    瀏覽量

    87372
  • 終端
    +關注

    關注

    1

    文章

    1014

    瀏覽量

    29634
  • python
    +關注

    關注

    52

    文章

    4698

    瀏覽量

    83610
  • Rich
    +關注

    關注

    0

    文章

    2

    瀏覽量

    5749
  • 開發者
    +關注

    關注

    1

    文章

    512

    瀏覽量

    16645
收藏 人收藏

    評論

    相關推薦

    如何正確的使用開發者中心?開發者絕對不想錯過的干貨

    不可錯過的史上最全干貨,喜大普奔,開發者們紛紛奔走相告,你還不來看看嗎?開發快官網的開發者中心是為用戶提供資料和服務的平臺,全面了解文檔架構可以幫助開發者快速找到自己需要的資料。在使用
    發表于 03-16 09:03

    python開發工具推薦

    Python開發軟件可根據其用途不同分為兩種,一種是Python代碼編輯器,一種是Python集成開發工具,兩
    發表于 04-12 16:12

    專業python web編程工具

    PythonWeb應用程序、工具的鼻祖,是Python家族一個強有力的分支。Zope 2的“對象發布”系統非常適合面向對象開發方法,并且可以減輕開發者的學習曲線,還可以幫助你發現應用程
    發表于 06-12 16:23

    開發者福音!谷歌云APP引擎開始支持Python 3.7

    `Python表示很開心!谷歌云推出了第二代App Engine引擎標準runtime,這是對平臺的重大升級,允許開發者使用最新版本流行語言、框架和庫輕松運行web應用程序。想要嘗鮮的小伙伴們,猛戳
    發表于 08-14 10:12

    線下 | HarmonyOS 2.0 手機開發者 Beta 活動

    `【活動簡介】“HarmonyOS 2.0手機開發者Beta活動-北京站”已于12月16日成功舉辦,應廣大開發者的要求,我們將于12月30日舉辦第二場“HarmonyOS 2.0手機開發者Beta
    發表于 12-21 10:11

    OpenHarmony開發者文檔

    此工程存放OpenHarmony提供的快速入門、開發指南、API參考等開發者文檔,歡迎參與OpenHarmony開發者文檔開源項目,與我們一起完善開發者文檔。View English文
    發表于 04-23 18:08

    HarmonyOS開發者

    HarmonyOS開發者,HarmonyOS設備開發學習路線HarmonyOS 2.0如約而至,內存在128KB~128MB的終端設備廠商有福了,準備躍躍欲試,小編特意整理了HarmonyOS設備
    發表于 07-22 09:53

    首批華為鴻蒙系統課程開發者 精選資料分享

    的 Beta 版本,即日起開發者可以獲得面向大屏、手表、車機的 SDK、工具、文檔和模擬器,今年 12 月將發布手機版本的 SDK、工具、文檔和模擬器。明年華為智能手機將全面升級支持鴻蒙 2.0
    發表于 07-30 06:03

    絕對干貨!HarmonyOS開發者日資料全公開,鴻蒙開發者都在看

    731HarmonyOS開發者日大會PPT資料全在這了,想要了解的小伙伴可以自行下載啦~下載資料的小伙伴還可以在評論區回復領取5個積分哦1、HarmonyOS 職業認證解讀:該主題是開發者非常關注
    發表于 08-04 14:36

    HarmonyOS 3.0.0開發者預覽版全新發布

    ~一、Harmony設計系統Harmony設計系統,綜合考慮人因、設備和環境等因素,為跨端應用界面設計提供完備的設計規范、便捷的設計工具、以及豐富的設計資源,方便開發者創作出更優秀的設計。二、ArkUI
    發表于 10-25 15:49

    誠邀報名丨首期OpenHarmony開發者成長計劃分享日

    開發者,指導項目完美落地。這些優秀導師是如何在忙碌的開發工作中,還能培養出優秀學生開發者,聽他們的故事,帶給你不一樣的啟發。大咖 &對話:資深技術專家分享此次成長計劃分享會邀請
    發表于 04-21 18:26

    華為 HDC 2022 開發者大會 (Together)于11月4日全面啟航!

    感知能力、兼容性技術等,以及設備開發的DevEco開發測試工具,幫助智能硬件開發者快速適配OpenHarmony系統,高效開發多端協同、安全
    發表于 11-01 11:07

    潤和軟件榮獲華為開發者聯盟 2022年度最佳生態服務商獎

    ,江蘇潤和軟件股份有限公司(以下簡稱“潤和軟件”)受邀參會,并在華為終端開發者聯盟舉辦的“一站式開發者服務及開放能力”分論壇上榮獲“華為開發者聯盟 2022年度最佳生態服務商獎”。在
    發表于 11-09 10:24

    喜報|HarmonyOS開發者社區連獲業內獎項,持續深耕開發者生態

    臨近年末,各大平臺陸續揭曉年度榜單,表彰了具備強大影響力與做出突出貢獻的優秀項目與團隊,而HarmonyOS開發者社區作為技術分享,學習和展示的平臺,輸出高質量技術文章百余篇,連續獲得業內各大
    發表于 01-19 14:32

    華為云開發者桌面全新發布 CodeArts IDE for Python,極致優雅云原生開發體驗

    近日,華為云正式發布 CodeArts IDE for Python,這是一款內置華為自研 Python 語言服務,提供智能編程、靈活調試能力的可擴展桌面開發工具,為華為云開發者提供卓
    的頭像 發表于 05-10 00:27 ?422次閱讀
    華為云<b class='flag-5'>開發者</b>桌面全新發布 CodeArts IDE for <b class='flag-5'>Python</b>,極致優雅云原生<b class='flag-5'>開發</b>體驗
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>