Python ターミナルの強化されたオープンソース ライブラリ

49783a3a8daffa5d21001e761bbf5939.png

迷子になった本の少年

読んだ後に必要

4

速読にはわずか2分しかかかりません

1

   

導入

rich は、より優れた端末テキスト レンダリングとスタイル処理機能を提供するために Will McGugan によって開発されたオープン ソース ライブラリです。色、太字、斜体、下線、配置などのリッチ テキスト書式設定オプションが提供されます。rich は、コマンド ライン インターフェイスを美しくするのに適しているだけでなく、リッチ テキスト レポート、ログ、ターミナル UI などの生成にも使用できます。

2

   

実施原則

Rich は、ANSI エスケープ コードを使用して端末出力のスタイルを制御します。ANSI エスケープ コードは、端末上で色、スタイル、書式設定を表示するために使用される特殊な文字シーケンスであり、リッチではこれらのエスケープ コードを使用して、テキストの強調表示、色付け、およびスタイル設定効果を実現します。

3

   

インストール

次のコマンドを使用してインストールします

pip install rich

インストールが完了したら、簡単にテストできます

python -m rich

2b21e33314439a77e5a360e2ba74a569.jpeg

4

   

サンプルコード

以下は、端末出力に対する豊富なライブラリのスタイル効果を示す簡単な例です。

from rich import print


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

このコードはターミナルにスタイル付きテキストを出力します。プログラム実行の効果は次のとおりです。

193cfc3c7cd4b33658040f5a8be51666.jpeg

プログレスバーを表示する例を見てみましょう。

from time import sleep
from urllib.request import urlopen


from rich.progress import wrap_file


# 访问外部链接
response = urlopen("https://www.textualize.io")


# 获取大小
size = int(response.headers["Content-Length"])


# 获取文件并显示进度条
with wrap_file(response, size) as file:
    for line in file:
        print(line.decode("utf-8"), end="")
        sleep(0.1)

プログラムの実行結果

f79343003e0b6b064cf96fc1aa98a1c4.jpeg

最後に、もう一度

from random import randint


from rich import print
from rich.highlighter import Highlighter


# 定义Highlighter的子类,重写highlight方法
class RainbowHighlighter(Highlighter):
    def highlight(self, text):
        for index in range(len(text)):
            text.stylize(f"color({randint(16, 255)})", index, index + 1)




rainbow = RainbowHighlighter()
print(rainbow("I must not fear. Fear is the mind-killer."))

ハイライト方法では、randint を使用して色番号をランダムに生成し、スタイル化して各文字に異なる色を適用します。

上記のコードの効果

050a7433981bc0855440310b58c0b745.jpeg

5

   

要約する

上記の紹介と例を通じて、豊富な Python オープン ソース ライブラリの基本を理解していただければ幸いです。rich は強力なテキスト レンダリングとスタイル処理機能を提供します。使いやすい API と豊富なドキュメントにより、使用と統合が非常に便利です。その他の使用上のヒントやアプリケーション例については、公式ドキュメントを参照してください。

6

   

参考文献

  • https://github.com/Textualize/rich ( https://github.com/Textualize/rich )

  • https://link.zhihu.com/?target=https%3A//handwiki.org/wiki/ANSI_escape_code ( https://link.zhihu.com/?target=https%3A//handwiki.org/wiki/ ANSI_エスケープコード)

7

   

無料コミュニティ

249bb48cf8e931783baa2ff53eeed586.jpeg

e245bc82de981e55cf655fa0a9861de9.gif

おすすめ

転載: blog.csdn.net/djstavaV/article/details/132893522