2017-09-24 15 views
-1

WindowsでのPython 3.7の印刷は、subprocess.call()でshell = Trueになるまで、ANSIカラーコードでは期待通りに機能しません。Python ANSIカラーコード

以下のリンクでは、ANSIカラーコードがそのままの状態で「印刷」コマンドを使用する必要があることを暗示しています。

How to print colour/color in python? Print in terminal with colors using Python?

秒1

は、まさにそれが何を意味するのかわからないVT100エミュレーションを...言及しています。私は色の罰金を出力するバッチファイルを書くことができるので、Pythonで同じように動作するはずだと思います。

ESC文字は「コメントアウト」されているようだしかし、私はANSIカラーコードを使用することはできませんよ(?)例えばI

print(u"\u001b[31mHelloWorld") 

は、私が見ることができないですときので、 (疑問符の付いたボックス)ESC文字としてのpythonシェルで、Windowsおよび印刷物に必要であると考えられるとして、出力をカラー「[?]」

は、私がここで行方不明です何かありますか?

答えて

0

私自身は答えを見つけました。多くの場合、私はちょうど十分に見えませんでした。これは、クロスプラットフォームの関数である

コロラマモジュールは

py -m pip install colorama

でインストールすることができ、init

colorama.init()

と呼ばれるモジュールのルートにメソッド定義が付属していこれは、ウィンドウ上でのみ有用であることを示しています(逆のためにアクティブなターミナル状態を保存し、ANSIコードを前処理するためにターミナルを書き込みます)。fまたは他のオペレーティングシステムを含む。

私は、ctypesを使用し、アクティブターミナルでInterpretフラグを自分で設定すると、より軽量なソリューションを実装することを考えています。

あなたはより多くの情報に興味がある場合は、こちらを参照してください。

https://docs.microsoft.com/en-us/windows/console/console-virtual-terminal-sequences

出力シーケンス出力ストリームに書き込まれたときENABLE_VIRTUAL_TERMINAL_PROCESSING場合 次末端配列は、コンソールのホストによって傍受されていますフラグは、SetConsoleModeフラグを使用してスクリーンバッファハンドルに設定されます。 DISABLE_NEWLINE_AUTO_RETURNフラグはまた、カーソルの位置をエミュレートし、任意の行の最後の列に書かれた文字に関連して他の端末エミュレータの動作をスクロールするのに有用であり得ることに留意されたいです。

重点鉱山。

関連する問題