2

LinuxおよびWindowsシェルのpython 3.3.2でシェルの印刷色を変更する方法はありますか? 他のすべてのトピックを読みましたが、このバージョンで動作するトピックがないか、モジュールをインポートする必要があります。たとえば、純粋なpythonモジュールで次のように印刷したい:

ここに画像の説明を入力

. 両方使ってます!そして、Python 3.3でも作業している人は誰もいないと言いました: https://stackoverflow.com/questions/287871/print-in-terminal-with-colors-using-pytho n

また、重複した質問だとは言わないでください。これらの回答はいずれも Python 3.3.2 では機能せず、Python にインストールする必要がある colorama ではなく、デフォルト モジュールを使用して実行したかったからです。

4

4 に答える 4

1

https://pypi.python.org/pypi/coloramaの説明に基づいて、

ANSI エスケープ文字シーケンスは、Unix と Mac で色付きの端末テキストとカーソル位置を生成するために長い間使用されてきました。Colorama は、stdout をラップし、見つけた ANSI シーケンス (出力に gobbledygook として表示される) を取り除き、それらを適切な win32 呼び出しに変換して端末の状態を変更することにより、Windows でもこれを機能させます。

それを自分で行うのは、かなりの量の作業のように思えます。

とはいえ、彼らはこれについても言及しています:

別の方法として、「ansi.sys」を Windows マシンにインストールする方法があります。これにより、端末で実行されるすべてのアプリケーションに同じ動作が提供されます。Colorama は、それが容易ではない状況向けに設計されています

ansi.sysオプションの場合、次のリンクが役立ちます。

于 2013-11-01T16:43:23.090 に答える
1

配色を変更するには、 の [Colors] セクションを編集しconfig.txtます。ただし、プログラム中にこれを行うことはできません。できたとしても、うんざりするほど非効率的です。新しいモジュールをインストールする必要はありません。subprocessこれは、Python に付属のモジュールである を介して実行できます。

何かのようなもの:

from subprocess import call

call('color a', shell=True) #this sets the color to light green
print('The quick brown fox jumps over the lazy dog.')

これは Windows で機能し、オペレーティング システムに応じて呼び出されるコマンドを簡単に変更できます。プログラムでは、色をforループに入れて、printステートメント内のメッセージで変更できます。

注意として、これはファイルの場所またはコマンドラインから実行した場合にのみ機能します。IDLE で実行すると機能しません。私が助けてくれることを願っています!

編集:ここで色のリストを見つけることができます。構文は次のとおりですcolor 'background ID''text ID'

これにより、次のようなことができます。

import time
from subprocess import call

for color in('a', 'e', 'c'): #cycles through different colours
    call('cls', shell=True) #clears the screen
    call('color ' + color, shell=True)
    print('The quick brown fox jumps over the lazy dog.')
    time.sleep(1)

input("\nPress enter to exit. ")

そこから、選択した色を使用するようにコードを変更できます。残念ながら、画面上にすべての色を同時に表示する方法は絶対にありません。そのためには、外部モジュールが必要です

于 2013-11-01T16:57:30.240 に答える