18

Windows で ANSI サポートを追加する Python モジュールを探しています。

これは、モジュールをインポートした後、ANSI エスケープ文字列を出力すると、それに応じて表示されることを意味します。

4

3 に答える 3

14

あなたの最善の策は、おそらくcoloramaモジュールを使用することです。

実際、Windows コンソールは ANSI カラーをネイティブにサポートしていないと思います。colorama は、ANSI シーケンスをインターセプトし、適切な Windows カラー変更呼び出しを実行することで、この問題を解決します。この方法では、Windows と ANSI 準拠の端末の両方で同じ方法で色を出力できるため、コードの移植性が高くなります。

于 2011-12-02T15:24:50.683 に答える
9

coloramaこれを実行できる 2 つの Python モジュールとtendo.ansiterm、もともと .NET 用に作成されたモジュールがありますwaf

最初のテストではcolorama、1 行ではなく 2 行のコードが必要な場合でも、より成熟していることがわかります。

import sys
try:
   import colorama
   colorama.init()
except:
   try:
       import tendo.ansiterm
   except:
       pass

sys.stdout.write"\033[33mYellow Submarine"
sys.stderr.write"\033[31mred, red , wine!"

現在、どちらも正常に動作しますが、stderr または stdout の一方のみをリダイレクトしようとすると、ansiterm は ANSI コードを画面に出力し、出力をリダイレクトします。

確かではありませんが、出力が tty ではない場合に ANSI コードを削除するのが正しい動作であると思われます。ログ ファイルに ANSI エスケープが表示されないようにする必要があります。

于 2011-12-02T18:46:40.770 に答える
2

移植性のためにコロラマを使用するカラフルを使用することもできます。

于 2018-06-14T09:47:21.670 に答える