2739

Pythonで色付きのテキストを端末に出力するにはどうすればよいですか?

4

56 に答える 56

2418

これは、使用しているプラ​​ットフォームによって多少異なります。これを行う最も一般的な方法は、ANSIエスケープシーケンスを印刷することです。簡単な例として、 BlenderビルドスクリプトからのPythonコードを次に示します。

class bcolors:
    HEADER = '\033[95m'
    OKBLUE = '\033[94m'
    OKCYAN = '\033[96m'
    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)

または、Python 3.6以降の場合:

print(f"{bcolors.WARNING}Warning: No active frommets remain. Continue?{bcolors.ENDC}")

これは、OS X、Linux、およびWindowsを含むUNIXで機能します(ANSICONを使用している場合、またはWindows 10ではVT100エミュレーションを有効にしている場合)。色の設定、カーソルの移動などのためのANSIコードがあります。

これで複雑になる場合(そしてゲームを書いている場合のように聞こえます)、これの複雑な部分の多くを処理する「 curses 」モジュールを調べる必要があります。PythonCursesHowTOは良い入門書です。

拡張ASCIIを使用していない場合(つまり、PC上ではない場合)、127未満のASCII文字でスタックしているため、「#」または「@」がブロックの最善の策である可能性があります。端末がIBM拡張ASCII文字セットを使用していることを確認できる場合は、さらに多くのオプションがあります。文字176、177、178、および219は「ブロック文字」です。

「DwarfFortress」などの一部の最新のテキストベースのプログラムは、グラフィックモードでテキストモードをエミュレートし、クラシックPCフォントの画像を使用します。Dwarf Fortress Wikiで使用できるこれらのビットマップのいくつかを見つけることができます(ユーザー作成のタイルセット)。

テキストモードデモコンテストには、テキストモードでグラフィックスを実行するためのより多くのリソースがあります。

于 2008-11-13T19:25:07.787 に答える
1027

Python termcolor モジュールもあります。使い方はとても簡単です:

from termcolor import colored

print colored('hello', 'red'), colored('world', 'green')

または Python 3 の場合:

print(colored('hello', 'red'), colored('world', 'green'))

ただし、ゲームのプログラミングややりたい「色付きのブロック」については、十分に洗練されていない可能性があります...

ANSIコードをWindowsで動作させるには、最初に実行します

os.system('color')
于 2008-11-16T07:31:39.037 に答える
908

答えは、Python でのすべてのクロスプラットフォーム カラーリングのColoramaです。

Python 3.5+ と Python 2.7 をサポートしています。

そして2021年1月現在、維持されています。

スクリーンショットの例: スクリーンショットの例

于 2010-07-26T07:07:14.003 に答える
563

色/スタイル、次に文字列を開始する文字列を出力し、色/スタイルの変更を次のように終了し'\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()

ライト オン ダークの例 (完全)

ここに画像の説明を入力してください

ダーク オン ライトの例 (一部)

出力の上部

于 2014-02-14T17:56:38.347 に答える
273

色を開始する文字列と色を終了する文字列を定義します。次に、先頭に開始文字列、最後に終了文字列を付けてテキストを印刷します。

CRED = '\033[91m'
CEND = '\033[0m'
print(CRED + "Error, does not compute!" + CEND)

これにより、urxvtZenburn スタイルの配色で、Bash に次のものが生成されます。

出力色

実験を通じて、より多くの色を得ることができます。

カラーマトリックス

注:\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
于 2016-09-12T14:00:32.827 に答える
109

ANSI エスケープ シーケンスについて学習します。簡単な例を次に示します。

CSI = "\x1B["
print(CSI+"31;40m" + "Colored Text" + CSI + "0m")

詳細については、ANSI エスケープ コードを参照してください。

ブロック文字の場合は、\u2588 のような Unicode 文字を試してください:

print(u"\u2588")

すべてを一緒に入れて:

print(CSI+"31;40m" + u"\u2588" + CSI + "0m")
于 2008-11-13T19:22:54.017 に答える
68

私のお気に入りの方法は、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 カラーの端末だけでなく、あらゆる種類の端末で動作するよう最善を尽くしていることです。また、使用する簡潔さを維持しながら、読み取り不能なエスケープ シーケンスをコードから除外します。楽しむ!

于 2011-12-18T00:32:49.210 に答える
59

ループを使用してすべての色のクラスを生成し、色のすべての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'
于 2014-10-18T23:26:05.113 に答える
40

Windowsでは、モジュール'win32console'(一部のPythonディストリビューションで利用可能)またはモジュール'ctypes'(Python 2.5以降)を使用してWin32APIにアクセスできます。

両方の方法をサポートする完全なコードを確認するには、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)
于 2008-11-13T22:22:30.207 に答える
38

これは、私の意見では、最も簡単な方法です。必要な色の RGB 値がある限り、これは機能するはずです。

def colored(r, g, b, text):
    return "\033[38;2;{};{};{}m{} \033[38;2;255;255;255m".format(r, g, b, text)

赤いテキストを印刷する例:

text = 'Hello, World!'
colored_text = colored(255, 0, 0, text)
print(colored_text)

#or

print(colored(255, 0, 0, 'Hello, World!'))

マルチカラーのテキスト

text = colored(255, 0, 0, 'Hello, ') + colored(0, 255, 0, 'World')
print(text)
于 2020-05-22T17:46:49.870 に答える
37

joeld の回答を、コード内のどこでも使用できるグローバル関数を含むモジュールにラップしました。

ファイル: log.py

def enable():
    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)

enable()

次のように使用します。

import log
log.info("Hello, World!")
log.err("System Error")
于 2013-06-12T11:38:01.930 に答える
31
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")

オンラインで試す

于 2019-09-28T18:15:14.160 に答える
26

私はこれをやってしまいましたが、それが最もきれいだと感じました:

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)
于 2016-08-17T20:01:56.460 に答える
25

Windows の場合、 Win32 APIを使用していない限り、色付きでコンソールに出力することはできません。

Linux の場合は、print を使用するのと同じくらい簡単です。エスケープ シーケンスの概要は次のとおりです。

文字がボックスのように印刷されるかどうかは、コンソール ウィンドウに使用しているフォントによって異なります。ポンド記号はうまく機能しますが、フォントによって異なります。

#
于 2008-11-13T19:06:23.037 に答える
24

joeld 's answerに基づいて、ばかばかしいほど単純です:

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')
于 2015-04-18T22:18:35.643 に答える
22

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")
于 2012-07-01T00:41:40.033 に答える
21

Clintを使用できます:

from clint.textui import colored
print colored.red('some warning message')
print colored.green('nicely done!')
于 2012-01-08T01:40:35.110 に答える
19

cursesライブラリ の Python 実装を使用できます。 curses — 文字セル表示の端末処理

また、これを実行すると、ボックスが見つかります。

for i in range(255):
    print i, chr(i)
于 2008-11-13T19:13:59.683 に答える
15

ゲームをプログラミングしている場合、おそらく背景色を変更してスペースのみを使用したいですか?例えば:

print " "+ "\033[01;41m" + " " +"\033[01;46m"  + "  " + "\033[01;42m"
于 2008-11-13T19:38:57.433 に答える
11

Windowsを使用している場合は、ここに移動します。

# Display text on a Windows console
# Windows XP with Python 2.7 or Python 3.2
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 ... ")
于 2012-06-25T16:59:39.363 に答える
11

絵文字

回答で他の人が言及したように、テキストに色を使用して、背景色または前景色のカラフルなテキストを作成できます。

ただし、代わりに絵文字を使用できます。たとえば、⚠️警告メッセージやエラー メッセージに使用できます。

または、単にこれらのノートを色として使用します。

: error message
: warning message
: ok status message
: action message
: canceled status message
: Or anything you like and want to recognize immediately by color

ボーナス:

この方法は、ソース コード内のログを直接すばやくスキャンして見つけるのにも役立ちます。

ただし、一部のオペレーティング システム (一部のウィンドウ マネージャーを備えた一部のバージョンの一部の Linux ディストリビューションを含む) のデフォルトの絵文字フォントは、デフォルトではカラフルではないため、最初にカラフルにしたい場合があります。

于 2020-09-28T09:58:38.350 に答える
11

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 のインストール方法

試してみてください!!

于 2015-04-22T19:00:32.310 に答える
10

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)
于 2009-07-02T11:59:17.670 に答える
10

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!」を出力します。単語は青色で、感嘆符は太字の赤色で点滅しています。

于 2015-07-09T06:58:08.273 に答える
10

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')
于 2013-03-26T21:15:20.853 に答える
10

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

アシキャスト:

アスキー ノイズの中で虹色のテキスト

于 2016-05-05T13:08:25.847 に答える
10

組み込みパッケージのみを使用する場合は、次の構造に従います。

実際、私はMohamed Samyの回答を強化しました。これは現在、複数の入力と数値を担当しています。print()また、などの他の引数もサポートしていend=ます。.store()さらに、ログをファイルに書き留めるためのメソッドも追加しました。

コードの任意の場所で使用するユーティリティを作成できます。

# utility.py

from datetime import datetime

class ColoredPrint:
    def __init__(self):
        self.PINK = '\033[95m'
        self.OKBLUE = '\033[94m'
        self.OKGREEN = '\033[92m'
        self.WARNING = '\033[93m'
        self.FAIL = '\033[91m'
        self.ENDC = '\033[0m'

    def disable(self):
        self.PINK = ''
        self.OKBLUE = ''
        self.OKGREEN = ''
        self.WARNING = ''
        self.FAIL = ''
        self.ENDC = ''

    def store(self):
        date = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
        with open('logfile.log', mode='a') as file_:
            file_.write(f"{self.msg} -- {date}")
            file_.write("\n")

    def success(self, *args, **kwargs):
        self.msg = ' '.join(map(str, args))
        print(self.OKGREEN + self.msg + self.ENDC, **kwargs)
        return self

    def info(self, *args, **kwargs):
        self.msg = ' '.join(map(str, args))
        print(self.OKBLUE + self.msg + self.ENDC, **kwargs)
        return self

    def warn(self, *args, **kwargs):
        self.msg = ' '.join(map(str, args))
        print(self.WARNING + self.msg + self.ENDC, **kwargs)
        return self

    def err(self, *args, **kwargs):
        self.msg = ' '.join(map(str, args))
        print(self.FAIL + self.msg + self.ENDC, **kwargs)
        return self

    def pink(self, *args, **kwargs):
        self.msg = ' '.join(map(str, args))
        print(self.PINK + self.msg + self.ENDC, **kwargs)
        return self

例えば

from utility import ColoredPrint

log = ColoredPrint()

log.success("Hello" , 123, "Bye").store()
log.info("Hello" , 123, "Bye")
log.warn("Hello" , 123, "Bye")
log.err("Hello" , 123, "Bye").store()
log.pink("Hello" , 123, "Bye")

外:

ここに画像の説明を入力


[アップデート]:

現在、その PyPIパッケージが利用可能です。

pip install python-colored-print
于 2021-03-24T11:40:06.317 に答える
7

キャラクターのために

お使いの端末はおそらく Unicode (通常は UTF-8 でエンコードされた) 文字を使用しているため、適切なフォントを選択するだけで、お気に入りの文字が表示されます。Unicode char U+2588、「フル ブロック」を使用することをお勧めします。

次のことを試してください。

import unicodedata
fp= open("character_list", "w")
for index in xrange(65536):
    char= unichr(index)
    try: its_name= unicodedata.name(char)
    except ValueError: its_name= "N/A"
    fp.write("%05d %04x %s %s\n" % (index, index, char.encode("UTF-8"), its_name)
fp.close()

後でお気に入りのビューアでファイルを調べます。

色について

cursesは、使用するモジュールです。このチュートリアルを確認してください。

于 2008-11-13T19:53:03.270 に答える
7

この新しいライブラリPrintyをお勧めします。彼らは、クロスプラットフォーム ライブラリとしてバージョン 1.2.0 をリリースしました。

確認してください: GitHub の Printy

フラグに基づいているため、次のようなことができます

from printy import printy

# With global flags, this will apply a bold (B) red (r) color and an underline (U) to the whole text
printy("Hello, World!", "rBU")

# With inline formats, this will apply a dim (D)
#blue (b) to the word 'Hello' and a stroken (S)
#yellow (y) to the word 'world', and the rest will remain as the predefined format
printy("this is a [bD]Hello@ [yS]world@ text")

ここに画像の説明を入力してください

于 2020-04-15T00:56:32.933 に答える
5

pyfancyを使用します。端末に色を付ける簡単な方法です!

例:

print(pyfancy.RED + "Hello Red" + pyfancy.END)
于 2015-01-26T21:50:24.137 に答える
4

http://pypi.python.org/pypi/colorconsoleで入手できる簡単なモジュールを 作成しました。

Windows、Mac OS X、および Linux で動作します。Linux と Mac では ANSI を使用しますが、Windows ではコンソール関数へのネイティブ呼び出しを使用します。色、カーソル位置、キーボード入力があります。curses に代わるものではありませんが、単純なスクリプトや ASCII ゲームで使用する必要がある場合は非常に便利です。

于 2011-10-20T16:34:37.860 に答える
4

私が見つけることができる最も簡単な方法は、ANSI エスケープ コードを使用するのではなく、Forefrom import moduleを使用することですcolorama。以下のコードを見てください。

from colorama import Fore, Style

print(Fore.MAGENTA + "IZZ MAGENTA BRUH.")

print(Style.RESET_ALL + "IZZ BACK TO NORMALZ.")

ANSI エスケープ コードとの比較:

print("\u001b[31m IZZ RED (NO MAGENTA ON ANSI CODES).\u001b[0m")

print("BACK TO NORMALZ.")
于 2019-12-10T19:29:25.163 に答える
3
print("\033[1;32;40m Bright Green  \n")

1

于 2020-12-28T09:40:16.610 に答える
2

この問題に対処するために、icolorと呼ばれる補間されたカラーコードで文字列を印刷するための非常にシンプルなパッケージを作成しました。

icolorには、次の2つの関数が含まれています。cformatおよびcprint、それぞれが、ANSIエスケープシーケンスにマップするために補間されるサブ文字列を含む文字列を取ります。

from icolor import cformat # there is also cprint

cformat("This is #RED;a red string, partially with a #xBLUE;blue background")
'This is \x1b[31ma red string, partially with a \x1b[44mblue background\x1b[0m'

すべてのANSIカラー(たとえば#RED;#BLUE;など)、#RESET;および#BOLD;その他が含まれています。

背景色にはx接頭辞が付いているため、緑の背景はになります#xGREEN;

で逃げることができ#ます##

その単純さを考えると、最良のドキュメントはおそらくコード自体です。

PYPIにあるので、できsudo easy_install icolorます。

于 2012-06-24T15:07:49.800 に答える