Pythonで色付きのテキストをターミナルに出力するにはどうすればよいですか?固体ブロックを表すのに最適なUnicodeシンボルは何ですか?
█
問題は、拡張ASCIIであるということだけです。おそらく、それを使用して動作させることができますhttp://stackoverflow.com/questions/8465226/using-extended-ascii-codes-with-python
Pythonで色付きのテキストをターミナルに出力するにはどうすればよいですか?固体ブロックを表すのに最適なUnicodeシンボルは何ですか?
█
問題は、拡張ASCIIであるということだけです。おそらく、それを使用して動作させることができますhttp://stackoverflow.com/questions/8465226/using-extended-ascii-codes-with-python
回答:
これは、使用しているプラットフォームによって多少異なります。これを行う最も一般的な方法は、ANSIエスケープシーケンスを出力することです。簡単な例として、blenderビルドスクリプトからのpythonコードを以下に示します。
class bcolors:
HEADER = '\033[95m'
OKBLUE = '\033[94m'
OKGREEN = '\033[92m'
WARNING = '\033[93m'
FAIL = '\033[91m'
ENDC = '\033[0m'
BOLD = '\033[1m'
UNDERLINE = '\033[4m'
このようなコードを使用するには、次のようなことができます
print(bcolors.WARNING + "Warning: No active frommets remain. Continue?" + bcolors.ENDC)
または、Python3.6以降:
print(f"{bcolors.WARNING}Warning: No active frommets remain. Continue?{bcolors.ENDC}")
これは、OS X、linux、windowsなどのUNIXで機能します(ANSICONを使用している場合、またはWindows 10ではVT100エミュレーションを有効にした場合))。色の設定、カーソルの移動などのためのANSIコードがあります。
これで複雑になる場合(そして、ゲームを書いている場合のように聞こえる場合)、「curses」モジュールを調べる必要があります。これは、この複雑な部分の多くを処理します。Pythonの呪いHOWTO良い紹介です。
拡張ASCIIを使用していない場合(つまり、PCにない場合)、127未満のASCII文字が表示されたままになり、 '#'または '@'がおそらくブロックに最適です。端末がIBM 拡張ASCII文字セットを使用していることを確認できる場合場合は、さらに多くのオプションがあります。文字176、177、178、219は「ブロック文字」です。
「ドワーフフォートレス」などの一部の最新のテキストベースのプログラムは、グラフィカルモードでテキストモードをエミュレートし、クラシックPCフォントのイメージを使用します。Dwarf Fortress Wikiで使用できるこれらのビットマップの一部を見つけることができます(ユーザー作成のタイルセット)。
テキストモードのデモコンテストは、テキストモードでのグラフィックスを行うためのより多くのリソースを持っています。
うーん..私はこの答えに少し夢中になったと思います。私は、テキストベースの壮大なアドベンチャーゲームを計画している最中です。色付きのテキストで頑張ってください!
tput
、そのように、それはよりポータブルなコードになり以来。
disable
は、出力をファイルにパイプする場合です。のようなツールcat
は色をサポートしているかもしれませんが、一般的にファイルに色情報を印刷しない方が良いです。
import ctypes;
kernel32 = ctypes.WinDLL('kernel32');
hStdOut = kernel32.GetStdHandle(-11);
mode = ctypes.c_ulong();
kernel32.GetConsoleMode(hStdOut, ctypes.byref(mode));
mode.value |= 4;
kernel32.SetConsoleMode(hStdOut, mode)
。
Pythonのtermcolorモジュールについて誰も触れていないことに驚いています。使い方はかなり簡単です:
from termcolor import colored
print colored('hello', 'red'), colored('world', 'green')
またはPython 3の場合:
print(colored('hello', 'red'), colored('world', 'green'))
ただし、ゲームプログラミングや、実行したい「色付きブロック」については、十分に洗練されていない可能性があります...
termcolor.COLORS
色のリストが表示されます
os.system('color')
最初に実行すると、ANSIエスケープシーケンスが機能し始めます。
答えはコロラマです、Pythonのすべてのクロスプラットフォームカラーリングのです。
<b>bold</b>
て端末テキストにスタイルを追加できる
色/スタイルで始まり、次に文字列で始まり、色/スタイルの変更を終了する文字列を次のように出力し'\x1b[0m'
ます。
print('\x1b[6;30;42m' + 'Success!' + '\x1b[0m')
次のコードを使用して、シェルテキストのフォーマットオプションの表を取得します。
def print_format_table():
"""
prints table of formatted text format options
"""
for style in range(8):
for fg in range(30,38):
s1 = ''
for bg in range(40,48):
format = ';'.join([str(style), str(fg), str(bg)])
s1 += '\x1b[%sm %s \x1b[0m' % (format, format)
print(s1)
print('\n')
print_format_table()
色を開始する文字列と色を終了する文字列を定義し、開始文字列を先頭に、終了文字列を末尾にしてテキストを印刷します。
CRED = '\033[91m'
CEND = '\033[0m'
print(CRED + "Error, does not compute!" + CEND)
これにより、Zenburnスタイルの配色でbash
、次のものが生成されますurxvt
。
実験を通じて、より多くの色を得ることができます:
注:\33[5m
および\33[6m
が点滅しています。
このようにして、フルカラーコレクションを作成できます。
CEND = '\33[0m'
CBOLD = '\33[1m'
CITALIC = '\33[3m'
CURL = '\33[4m'
CBLINK = '\33[5m'
CBLINK2 = '\33[6m'
CSELECTED = '\33[7m'
CBLACK = '\33[30m'
CRED = '\33[31m'
CGREEN = '\33[32m'
CYELLOW = '\33[33m'
CBLUE = '\33[34m'
CVIOLET = '\33[35m'
CBEIGE = '\33[36m'
CWHITE = '\33[37m'
CBLACKBG = '\33[40m'
CREDBG = '\33[41m'
CGREENBG = '\33[42m'
CYELLOWBG = '\33[43m'
CBLUEBG = '\33[44m'
CVIOLETBG = '\33[45m'
CBEIGEBG = '\33[46m'
CWHITEBG = '\33[47m'
CGREY = '\33[90m'
CRED2 = '\33[91m'
CGREEN2 = '\33[92m'
CYELLOW2 = '\33[93m'
CBLUE2 = '\33[94m'
CVIOLET2 = '\33[95m'
CBEIGE2 = '\33[96m'
CWHITE2 = '\33[97m'
CGREYBG = '\33[100m'
CREDBG2 = '\33[101m'
CGREENBG2 = '\33[102m'
CYELLOWBG2 = '\33[103m'
CBLUEBG2 = '\33[104m'
CVIOLETBG2 = '\33[105m'
CBEIGEBG2 = '\33[106m'
CWHITEBG2 = '\33[107m'
テストを生成するコードは次のとおりです。
x = 0
for i in range(24):
colors = ""
for j in range(5):
code = str(x+j)
colors = colors + "\33[" + code + "m\\33[" + code + "m\033[0m "
print(colors)
x=x+5
\33[0m
、以上を入れCEND
ます。
ANSIエスケープシーケンスについて学びたい。ここに簡単な例があります:
CSI="\x1B["
print(CSI+"31;40m" + "Colored Text" + CSI + "0m")
詳細については、http://en.wikipedia.org/wiki/ANSI_escape_codeを参照してください
ブロック文字については、\ u2588のようなUnicode文字を試してください。
print(u"\u2588")
すべてを一緒に入れて:
print(CSI+"31;40m" + u"\u2588" + CSI + "0m")
def d(*v): return '\x1B['+';'.join(map(str, v))+'m'
そしてprint ' '.join([d(k,i)+str(i%10)+d(0) for i in range(30,38)+range(40,48) for k in range(2)])
私はWindows 10でANSIコードを使用する方法を見つけたので応答しています。組み込みではないモジュールなしでテキストの色を変更できます。
この作業を行う行はos.system("")
、またはその他のシステムコールです。これにより、ターミナルでANSIコードを印刷できます。
import os
os.system("")
# Group of Different functions for different styles
class style():
BLACK = '\033[30m'
RED = '\033[31m'
GREEN = '\033[32m'
YELLOW = '\033[33m'
BLUE = '\033[34m'
MAGENTA = '\033[35m'
CYAN = '\033[36m'
WHITE = '\033[37m'
UNDERLINE = '\033[4m'
RESET = '\033[0m'
print(style.YELLOW + "Hello, World!")
注:これは他のWindowsオプションと同じオプションを提供しますが、このトリックを使用しても、WindowsはANSIコードを完全にはサポートしていません。すべてのテキスト装飾色が機能するわけではなく、すべての「明るい」色(コード90-97および100-107)は通常の色(コード30-37および40-47)と同じように表示されます。
編集:さらに短い方法を見つけてくれた@jlに感謝します。
tl; dr:os.system("")
ファイルの上部近くに追加します。
Pythonバージョン: 3.6.7
if sys.platform.lower() == "win32": os.system('color')
、単にに置き換えるだけで、さらに単純化できることがわかりましたos.system('')
。条件は必要ありません。コードはWindows 10とLinuxの両方で実行しました(テストしたとき)。ご覧のとおり、へのシステムコールを行う必要はありませんcolor
。通話dir
、cd
、abcdef
、、ちょうど空の文字列は正常に動作(非空の文字列は、おそらくあなたが見たいと思っていない出力が印刷されますが)。
私のお気に入りの方法は、Blessingsライブラリを使用することです(完全な開示:私が作成しました)。例えば:
from blessings import Terminal
t = Terminal()
print t.red('This is red.')
print t.bold_bright_red_on_black('Bright red on black')
色付きのレンガを印刷するには、最も信頼できる方法は、背景色でスペースを印刷することです。私はこの手法を使用して、プログレスバーを鼻からプログレッシブに描画します。
print t.on_green(' ')
特定の場所で印刷することもできます。
with t.location(0, 5):
print t.on_yellow(' ')
ゲーム中に他の端末機能をいじる必要がある場合は、それも可能です。Pythonの標準の文字列フォーマットを使用して、読みやすくすることができます。
print '{t.clear_eol}You just cleared a {t.bold}whole{t.normal} line!'.format(t=t)
Blessingsの良い点は、(圧倒的に一般的な)ANSI色の端末だけでなく、あらゆる種類の端末で作業できるように最善を尽くしていることです。また、使用するのに簡潔なまま、コードから読み取り不能なエスケープシーケンスを除外します。楽しんで!
getattr
必要に応じて、簡単にパラメーターにすることができます。あるいは、フォーマット文字列を動的に作成することもできます。
can just pass
はPythonの関数です。
STYがコロラマに似ていますが、それはあまり冗長だ、サポート8ビットおよび24ビット(RGB)の色、あなたはサポートがミュート、独自のスタイルを登録することができ、十分に文書化とより多くの、本当に柔軟です。
例:
from sty import fg, bg, ef, rs
foo = fg.red + 'This is red text!' + fg.rs
bar = bg.blue + 'This has a blue background!' + bg.rs
baz = ef.italic + 'This is italic text' + rs.italic
qux = fg(201) + 'This is pink text using 8bit colors' + fg.rs
qui = fg(255, 10, 10) + 'This is red text using 24bit colors.' + fg.rs
# Add custom colors:
from sty import Style, RgbFg
fg.orange = Style(RgbFg(255, 150, 50))
buf = fg.orange + 'Yay, Im orange.' + fg.rs
print(foo, bar, baz, qux, qui, buf, sep='\n')
プリント:
forループを使用してすべての色を含むクラスを生成し、100までの色のすべての組み合わせを反復処理してから、Pythonの色を使用してクラスを記述しました。あなたがするようにコピーして貼り付けます、私によるGPLv2:
class colors:
'''Colors class:
reset all colors with colors.reset
two subclasses fg for foreground and bg for background.
use as colors.subclass.colorname.
i.e. colors.fg.red or colors.bg.green
also, the generic bold, disable, underline, reverse, strikethrough,
and invisible work with the main class
i.e. colors.bold
'''
reset='\033[0m'
bold='\033[01m'
disable='\033[02m'
underline='\033[04m'
reverse='\033[07m'
strikethrough='\033[09m'
invisible='\033[08m'
class fg:
black='\033[30m'
red='\033[31m'
green='\033[32m'
orange='\033[33m'
blue='\033[34m'
purple='\033[35m'
cyan='\033[36m'
lightgrey='\033[37m'
darkgrey='\033[90m'
lightred='\033[91m'
lightgreen='\033[92m'
yellow='\033[93m'
lightblue='\033[94m'
pink='\033[95m'
lightcyan='\033[96m'
class bg:
black='\033[40m'
red='\033[41m'
green='\033[42m'
orange='\033[43m'
blue='\033[44m'
purple='\033[45m'
cyan='\033[46m'
lightgrey='\033[47m'
この簡単なコードを試してください
def prRed(prt): print("\033[91m {}\033[00m" .format(prt))
def prGreen(prt): print("\033[92m {}\033[00m" .format(prt))
def prYellow(prt): print("\033[93m {}\033[00m" .format(prt))
def prLightPurple(prt): print("\033[94m {}\033[00m" .format(prt))
def prPurple(prt): print("\033[95m {}\033[00m" .format(prt))
def prCyan(prt): print("\033[96m {}\033[00m" .format(prt))
def prLightGray(prt): print("\033[97m {}\033[00m" .format(prt))
def prBlack(prt): print("\033[98m {}\033[00m" .format(prt))
prGreen("Hello world")
Windowsでは、モジュール 'win32console'(一部のPythonディストリビューションで利用可能)またはモジュール 'ctypes'(Python 2.5以降)を使用してWin32 APIにアクセスできます。
参照、両方の方法をサポートしている完全なコードを参照するには、コードの報告カラーコンソールをからTestoobを。
ctypesの例:
import ctypes
# Constants from the Windows API
STD_OUTPUT_HANDLE = -11
FOREGROUND_RED = 0x0004 # text color contains red.
def get_csbi_attributes(handle):
# Based on IPython's winconsole.py, written by Alexander Belchenko
import struct
csbi = ctypes.create_string_buffer(22)
res = ctypes.windll.kernel32.GetConsoleScreenBufferInfo(handle, csbi)
assert res
(bufx, bufy, curx, cury, wattr,
left, top, right, bottom, maxx, maxy) = struct.unpack("hhhhHhhhhhh", csbi.raw)
return wattr
handle = ctypes.windll.kernel32.GetStdHandle(STD_OUTPUT_HANDLE)
reset = get_csbi_attributes(handle)
ctypes.windll.kernel32.SetConsoleTextAttribute(handle, FOREGROUND_RED)
print "Cherry on top"
ctypes.windll.kernel32.SetConsoleTextAttribute(handle, reset)
@joeldの答えに基づく愚かな
class PrintInColor:
RED = '\033[91m'
GREEN = '\033[92m'
YELLOW = '\033[93m'
LIGHT_PURPLE = '\033[94m'
PURPLE = '\033[95m'
END = '\033[0m'
@classmethod
def red(cls, s, **kwargs):
print(cls.RED + s + cls.END, **kwargs)
@classmethod
def green(cls, s, **kwargs):
print(cls.GREEN + s + cls.END, **kwargs)
@classmethod
def yellow(cls, s, **kwargs):
print(cls.YELLOW + s + cls.END, **kwargs)
@classmethod
def lightPurple(cls, s, **kwargs):
print(cls.LIGHT_PURPLE + s + cls.END, **kwargs)
@classmethod
def purple(cls, s, **kwargs):
print(cls.PURPLE + s + cls.END, **kwargs)
じゃあ
PrintInColor.red('hello', end=' ')
PrintInColor.green('world')
print
-replacementsですか?異議は取り消されました。
print
を適切に複製するために、多目的に機能を置き換えるために。
def purple(cls, *args, **kwargs): print(cls.PURPLE, *args, cls.END, **kwargs)
</ code>
@joeldの回答を、コードの任意の場所で使用できるグローバル関数を持つモジュールにラップしました。
ファイル:log.py
HEADER = '\033[95m'
OKBLUE = '\033[94m'
OKGREEN = '\033[92m'
WARNING = '\033[93m'
FAIL = '\033[91m'
ENDC = '\033[0m'
BOLD = "\033[1m"
def disable():
HEADER = ''
OKBLUE = ''
OKGREEN = ''
WARNING = ''
FAIL = ''
ENDC = ''
def infog( msg):
print OKGREEN + msg + ENDC
def info( msg):
print OKBLUE + msg + ENDC
def warn( msg):
print WARNING + msg + ENDC
def err( msg):
print FAIL + msg + ENDC
次のように使用します。
import log
log.info("Hello World")
log.err("System Error")
Windowsの場合、win32apiを使用していない限り、コンソールをカラーで印刷することはできません。
Linuxの場合は、printを使用するのと同じくらい簡単で、エスケープシーケンスは次のとおりです。
文字をボックスのように印刷するには、コンソールウィンドウに使用しているフォントによって異なります。ポンド記号はうまく機能しますが、フォントによって異なります。
#
# Pure Python 3.x demo, 256 colors
# Works with bash under Linux and MacOS
fg = lambda text, color: "\33[38;5;" + str(color) + "m" + text + "\33[0m"
bg = lambda text, color: "\33[48;5;" + str(color) + "m" + text + "\33[0m"
def print_six(row, format, end="\n"):
for col in range(6):
color = row*6 + col - 2
if color>=0:
text = "{:3d}".format(color)
print (format(text,color), end=" ")
else:
print(end=" ") # four spaces
print(end=end)
for row in range(0, 43):
print_six(row, fg, " ")
print_six(row, bg)
# Simple usage: print(fg("text", 160))
私はこれをやった、それが最もきれいだと感じた:
formatters = {
'RED': '\033[91m',
'GREEN': '\033[92m',
'END': '\033[0m',
}
print 'Master is currently {RED}red{END}!'.format(**formatters)
print 'Help make master {GREEN}green{END} again!'.format(**formatters)
https://pypi.python.org/pypi/lazyme を使用して、@ joeld回答に基づいて構築しますpip install -U lazyme
。
from lazyme.string import color_print
>>> color_print('abc')
abc
>>> color_print('abc', color='pink')
abc
>>> color_print('abc', color='red')
abc
>>> color_print('abc', color='yellow')
abc
>>> color_print('abc', color='green')
abc
>>> color_print('abc', color='blue', underline=True)
abc
>>> color_print('abc', color='blue', underline=True, bold=True)
abc
>>> color_print('abc', color='pink', underline=True, bold=True)
abc
スクリーンショット:
color_print
新しいフォーマッタを使用したへのいくつかの更新。例:
>>> from lazyme.string import palette, highlighter, formatter
>>> from lazyme.string import color_print
>>> palette.keys() # Available colors.
['pink', 'yellow', 'cyan', 'magenta', 'blue', 'gray', 'default', 'black', 'green', 'white', 'red']
>>> highlighter.keys() # Available highlights.
['blue', 'pink', 'gray', 'black', 'yellow', 'cyan', 'green', 'magenta', 'white', 'red']
>>> formatter.keys() # Available formatter,
['hide', 'bold', 'italic', 'default', 'fast_blinking', 'faint', 'strikethrough', 'underline', 'blinking', 'reverse']
注:italic
、fast blinking
およびstrikethrough
一部の端末では機能しない場合があり、Mac / Ubuntuでは機能しません。
例えば
>>> color_print('foo bar', color='pink', highlight='white')
foo bar
>>> color_print('foo bar', color='pink', highlight='white', reverse=True)
foo bar
>>> color_print('foo bar', color='pink', highlight='white', bold=True)
foo bar
>>> color_print('foo bar', color='pink', highlight='white', faint=True)
foo bar
>>> color_print('foo bar', color='pink', highlight='white', faint=True, reverse=True)
foo bar
>>> color_print('foo bar', color='pink', highlight='white', underline=True, reverse=True)
foo bar
スクリーンショット:
def black(text):
print('\033[30m', text, '\033[0m', sep='')
def red(text):
print('\033[31m', text, '\033[0m', sep='')
def green(text):
print('\033[32m', text, '\033[0m', sep='')
def yellow(text):
print('\033[33m', text, '\033[0m', sep='')
def blue(text):
print('\033[34m', text, '\033[0m', sep='')
def magenta(text):
print('\033[35m', text, '\033[0m', sep='')
def cyan(text):
print('\033[36m', text, '\033[0m', sep='')
def gray(text):
print('\033[90m', text, '\033[0m', sep='')
black("BLACK")
red("RED")
green("GREEN")
yellow("YELLOW")
blue("BLACK")
magenta("MAGENTA")
cyan("CYAN")
gray("GRAY")
with
キーワードがこれらのようなモディファイアとどの程度うまく組み合わされるかに注意してください(Python 3とColoramaを使用して)。
from colorama import Fore, Style
import sys
class Highlight:
def __init__(self, clazz, color):
self.color = color
self.clazz = clazz
def __enter__(self):
print(self.color, end="")
def __exit__(self, type, value, traceback):
if self.clazz == Fore:
print(Fore.RESET, end="")
else:
assert self.clazz == Style
print(Style.RESET_ALL, end="")
sys.stdout.flush()
with Highlight(Fore, Fore.GREEN):
print("this is highlighted")
print("this is not")
print(Style.BRIGHT + "Header Test")
しprint (Style.DIM + word)
て本当に素晴らしいプロンプトを作成しました。
contextlib
、Py3で使用するように変更する必要があります。
@contextlib.contextmanager
デコレータが付いているはずですよね?
cursesライブラリのPython実装を使用できます。http: //docs.python.org/library/curses.html
また、これを実行すると、ボックスが見つかります。
for i in range(255):
print i, chr(i)
CLINTを使用できます。
from clint.textui import colored
print colored.red('some warning message')
print colored.green('nicely done!')
私は遅れていることを知っています。しかし、私はColorItというライブラリーを持っています。とてもシンプルです。
ここではいくつかの例を示します。
from ColorIt import *
# Use this to ensure that ColorIt will be usable by certain command line interfaces
initColorIt()
# Foreground
print (color ('This text is red', colors.RED))
print (color ('This text is orange', colors.ORANGE))
print (color ('This text is yellow', colors.YELLOW))
print (color ('This text is green', colors.GREEN))
print (color ('This text is blue', colors.BLUE))
print (color ('This text is purple', colors.PURPLE))
print (color ('This text is white', colors.WHITE))
# Background
print (background ('This text has a background that is red', colors.RED))
print (background ('This text has a background that is orange', colors.ORANGE))
print (background ('This text has a background that is yellow', colors.YELLOW))
print (background ('This text has a background that is green', colors.GREEN))
print (background ('This text has a background that is blue', colors.BLUE))
print (background ('This text has a background that is purple', colors.PURPLE))
print (background ('This text has a background that is white', colors.WHITE))
# Custom
print (color ("This color has a custom grey text color", (150, 150, 150))
print (background ("This color has a custom grey background", (150, 150, 150))
# Combination
print (background (color ("This text is blue with a white background", colors.BLUE), colors.WHITE))
これはあなたに与えます:
また、これはクロスプラットフォームであり、Mac、Linux、Windowsでテストされていることにも注意してください。
あなたはそれを試してみたいかもしれません:https://github.com/CodeForeverAndEver/ColorIt
注:点滅、斜体、太字などが数日で追加されます。
ゲームをプログラミングしている場合、おそらく背景色を変更してスペースのみを使用したいですか?例えば:
print " "+ "\033[01;41m" + " " +"\033[01;46m" + " " + "\033[01;42m"
Windowsを使用している場合は、ここに進みます。
# display text on a Windows console
# Windows XP with Python27 or Python32
from ctypes import windll
# needed for Python2/Python3 diff
try:
input = raw_input
except:
pass
STD_OUTPUT_HANDLE = -11
stdout_handle = windll.kernel32.GetStdHandle(STD_OUTPUT_HANDLE)
# look at the output and select the color you want
# for instance hex E is yellow on black
# hex 1E is yellow on blue
# hex 2E is yellow on green and so on
for color in range(0, 75):
windll.kernel32.SetConsoleTextAttribute(stdout_handle, color)
print("%X --> %s" % (color, "Have a fine day!"))
input("Press Enter to go on ... ")
print("%X --> %s" % (color, "Have a fine day!"), end='', flush=True)
Djangoを使用している場合
>>> from django.utils.termcolors import colorize
>>> print colorize("Hello World!", fg="blue", bg='red',
... opts=('bold', 'blink', 'underscore',))
Hello World!
>>> help(colorize)
スナップショット:
(通常、runserverターミナルでのデバッグには色付きの出力を使用するため、追加しました。)
あなたのマシンにインストールされているかどうかをテストできます:
$ python -c "import django; print django.VERSION"
インストールするためのチェック:Djangoのインストール方法
試してみる!!
これがcursesの例です:
import curses
def main(stdscr):
stdscr.clear()
if curses.has_colors():
for i in xrange(1, curses.COLORS):
curses.init_pair(i, i, curses.COLOR_BLACK)
stdscr.addstr("COLOR %d! " % i, curses.color_pair(i))
stdscr.addstr("BOLD! ", curses.color_pair(i) | curses.A_BOLD)
stdscr.addstr("STANDOUT! ", curses.color_pair(i) | curses.A_STANDOUT)
stdscr.addstr("UNDERLINE! ", curses.color_pair(i) | curses.A_UNDERLINE)
stdscr.addstr("BLINK! ", curses.color_pair(i) | curses.A_BLINK)
stdscr.addstr("DIM! ", curses.color_pair(i) | curses.A_DIM)
stdscr.addstr("REVERSE! ", curses.color_pair(i) | curses.A_REVERSE)
stdscr.refresh()
stdscr.getch()
if __name__ == '__main__':
print "init..."
curses.wrapper(main)
https://raw.github.com/fabric/fabric/master/fabric/colors.py
"""
.. versionadded:: 0.9.2
Functions for wrapping strings in ANSI color codes.
Each function within this module returns the input string ``text``, wrapped
with ANSI color codes for the appropriate color.
For example, to print some text as green on supporting terminals::
from fabric.colors import green
print(green("This text is green!"))
Because these functions simply return modified strings, you can nest them::
from fabric.colors import red, green
print(red("This sentence is red, except for " + \
green("these words, which are green") + "."))
If ``bold`` is set to ``True``, the ANSI flag for bolding will be flipped on
for that particular invocation, which usually shows up as a bold or brighter
version of the original color on most terminals.
"""
def _wrap_with(code):
def inner(text, bold=False):
c = code
if bold:
c = "1;%s" % c
return "\033[%sm%s\033[0m" % (c, text)
return inner
red = _wrap_with('31')
green = _wrap_with('32')
yellow = _wrap_with('33')
blue = _wrap_with('34')
magenta = _wrap_with('35')
cyan = _wrap_with('36')
white = _wrap_with('37')
asciimaticsは、テキストUIとアニメーションを構築するためのポータブルサポートを提供します。
#!/usr/bin/env python
from asciimatics.effects import RandomNoise # $ pip install asciimatics
from asciimatics.renderers import SpeechBubble, Rainbow
from asciimatics.scene import Scene
from asciimatics.screen import Screen
from asciimatics.exceptions import ResizeScreenError
def demo(screen):
render = Rainbow(screen, SpeechBubble('Rainbow'))
effects = [RandomNoise(screen, signal=render)]
screen.play([Scene(effects, -1)], stop_on_resize=True)
while True:
try:
Screen.wrapper(demo)
break
except ResizeScreenError:
pass
アスキーキャスト:
python 3のprint関数をラップするさらに別のpypiモジュール:
https://pypi.python.org/pypi/colorprint
あなたもpython 2.xで使用できますfrom __future__ import print
。これは、モジュールのpypiページのpython 2の例です。
from __future__ import print_function
from colorprint import *
print('Hello', 'world', color='blue', end='', sep=', ')
print('!', color='red', format=['bold', 'blink'])
「Hello、world!」を出力します 青の単語と感嘆符が太字の赤で点滅します。