පයිතන්හි වර්ණ පෙළ මුද්‍රණය කරන්නේ කෙසේද?


2152

පයිතන්හි පර්යන්තයට වර්ණ පෙළ ප්‍රතිදානය කරන්නේ කෙසේද?


7
වඩා හොඳ ප්‍රතිචාර ලබා ගැනීම සඳහා ඔබ අමතර තොරතුරු කිහිපයක් සඳහන් කළ යුතුය: බහු ප්ලැට්ෆෝම්? බාහිර මොඩියුල පිළිගන්නේද?
සෝරින්

2
IPython එය කරයි, හරස් වේදිකාව. ඔවුන් භාවිතා කරන දේ බලන්න?
එන්ඩොලිත්

මෙම සංකේතය විශාල වර්ණ අවහිරයක් ඇති කරයි: ගැටළුව වන්නේ එය ASCII දිගු කිරීම පමණි, සමහර විට ඔබට එය භාවිතයෙන් වැඩ කර ගත හැකියhttp://stackoverflow.com/questions/8465226/using-extended-ascii-codes-with-python
Samy Bencherif

සමහර පර්යන්ත වලට යුනිකෝඩ් අක්ෂර පෙන්විය හැකිය. ඔබගේ පර්යන්තය සඳහා එය සත්‍ය නම්, විය හැකි අක්ෂර අසීමිත වේ.
ayke

4
මෙම පිළිතුර තරමක් ප්‍රමාද වූ නමුත් එය මට හොඳම බව පෙනේ ... ඊට ඉහළින් ඡන්දය දුන් අයට වින්ඩෝස් සඳහා විශේෂ හක්ක
ArtOfWarfare

Answers:


1847

මෙය තරමක් රඳා පවතින්නේ ඔබ සිටින්නේ කුමන වේදිකාව මතද යන්න මතය. මෙය කිරීමට වඩාත් පොදු ක්‍රමය වන්නේ ANSI ගැලවීමේ අනුපිළිවෙල මුද්‍රණය කිරීමයි. සරල උදාහරණයක් සඳහා, බ්ලෙන්ඩර් බිල්ඩ් ස්ක්‍රිප්ට් වලින් පයිතන් කේත කිහිපයක් මෙන්න :

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, ලිනක්ස් සහ වින්ඩෝස් ඇතුළු යුනික්ස් මත ක්‍රියා කරනු ඇත (ඔබ ANSICON භාවිතා කරන්නේ නම් හෝ වින්ඩෝස් 10 හි VT100 අනුකරණයන් සක්‍රීය කර තිබේ නම් ). වර්ණය සැකසීම, කර්සරය චලනය කිරීම සහ තවත් බොහෝ දේ සඳහා ඇන්සි කේත ඇත.

ඔබ මෙය සමඟ සංකීර්ණ වීමට යන්නේ නම් (ඔබ ක්‍රීඩාවක් ලියන්නේ නම් එය ඔබ මෙන් පෙනේ), ඔබ "ශාප" මොඩියුලය පිළිබඳව සොයා බැලිය යුතුය, මෙය ඔබ වෙනුවෙන් සංකීර්ණ කොටස් රාශියක් හසුරුවයි. මෙම පිඹුරා සාප ස්ථාපන හොඳ හඳුන්වා ඇත.

ඔබ දීර් AS ASCII භාවිතා නොකරන්නේ නම් (එනම් පරිගණකයක නොවේ), ඔබ 127 ට අඩු ascii අක්ෂර සමඟ සිරවී සිටින අතර, '#' හෝ '@' බොහෝ විට වාරණයක් සඳහා ඔබේ හොඳම ඔට්ටුව විය හැකිය. ඔබේ පර්යන්තය IBM විස්තාරිත ascii අක්ෂර කට්ටලයක් භාවිතා කරන බව ඔබට සහතික කළ හැකි නම් , ඔබට තවත් බොහෝ විකල්ප තිබේ. 176, 177, 178 සහ 219 අක්ෂර "බ්ලොක් අක්ෂර" වේ.

"වාමන බලකොටුව" වැනි සමහර නවීන පෙළ පදනම් කරගත් වැඩසටහන්, පෙළ ප්‍රකාරය චිත්‍රක ආකාරයෙන් අනුකරණය කරන අතර සම්භාව්‍ය පරිගණක අකුරු වල රූප භාවිතා කරයි. ඔබට වාමන බලකොටුව විකී බලන්න ( පරිශීලක-සාදන ලද ටයිල්සෙට් ) භාවිතා කළ හැකි මෙම බිට්මැප් කිහිපයක් ඔබට සොයාගත හැකිය .

මෙම පාඨමය Demo තරගය පාඨමය රූප සඳහා ද වැඩි සම්පත් ඇත.

හ්ම් .. මම හිතන්නේ මේ පිළිතුරෙන් ටිකක් away ත් වෙලා. මම වීර කාව්‍ය පාදක ත්‍රාසජනක ක්‍රීඩාවක් සැලසුම් කරමින් සිටිමි. ඔබේ වර්ණ පා text යට සුබ පැතුම්!


නමුත් මගේ පෙරනිමි විමසුම කළු නොවේ යැයි සිතමු - මෙම උපක්‍රම වලින් පසු පයිතන් රිසෝටරයක් ​​සෑදිය හැකි යැයි ඔබ සිතනවාද?
ඇඩෝබි

4
ලිනක්ස් මත, ඔබ භාවිතා කිරීමට ඔබට අවශ්ය විය හැකිය tput, එසේ වගේ එය වඩා එහා මෙහා ගෙන යා හැකි කේතය ප්රතිඵලයක් සිට.
මාටින් උඩිං

3
Aw කවාස්: disableඔබ ප්‍රතිදානය ගොනුවකට නල කරන විට සැබෑ භාවිත අවස්ථාවකි ; වැනි මෙවලම් catවර්ණවලට සහය විය හැකි නමුත් සාමාන්‍යයෙන් වර්ණ තොරතුරු ලිපිගොනු වලට මුද්‍රණය නොකිරීම වඩා හොඳය.
සෙබස්තියන් මැක්

1
Lex ඇලෙක්සැන්ඩර් සිම්කෝ, වින්ඩෝස් 10 හි VT100 සහය සක්‍රීය කිරීම සඳහා ctypes කේත ස්නිපටයක් මෙන්න : 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).
එරික් සන්

1
පිළිතුරෙන් පයිතන් නිදර්ශන කේතය භාවිතා කරන ඕනෑම කෙනෙකුට: 90-97 සහ 100-107 පරාසයේ වර්ණ ප්‍රමිතියෙන් තොර බව සැලකිල්ලට ගත යුතුය . ඇත්ත වශයෙන්ම මගේ පර්යන්තයේ ඒවා සියල්ලම දැක්වෙන වර්ණ ලබා නොදේ. විචල්ය නම්. 30-37 සහ 40-47 සම්මත පරාසයන් භාවිතා කිරීම වඩා හොඳය. මුලාශ්‍රය: en.wikipedia.org/wiki/…
balu

814

පයිතන් ටර්ම්කොලර් මොඩියුලය කිසිවෙකු සඳහන් නොකිරීම ගැන මට පුදුමයි . භාවිතය ඉතා සරල ය:

from termcolor import colored

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

හෝ පයිතන් 3 හි:

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

එය ප්‍රමාණවත් තරම් නවීන නොවිය හැක, කෙසේ වෙතත්, ක්‍රීඩා වැඩසටහන් සහ ඔබට කිරීමට අවශ්‍ය “වර්ණ කුට්ටි” සඳහා ...


2
එය ANSI කේත විමෝචනය කරන බැවින්, ansi.sys පටවා ඇත්නම් එය වින්ඩෝස් (DOS කොන්සෝල) මත ක්‍රියා කරයිද? support.microsoft.com/kb/101875
ෆිල් පී

37
13/01/2011 වන විට එය දැන් MIT බලපත්‍රය යටතේ පවතින බව දුටුවා
ඇලෙක්සැන්ඩර් ට්සෙප්කොව්

12
යුනිටෙට්ස් (කොලරාමා මෙන් නොව) සහ 2011 සිට යාවත්කාලීන කර නොමැත
ජැනස් ට්‍රොල්සන්

5
termcolor.COLORSඔබට වර්ණ ලැයිස්තුවක් ලබා දෙයි
akxlr

23
වින්ඩෝස් os.system('color')පළමුව ධාවනය වන විට , පසුව ANSI ගැලවීමේ අනුක්‍රමය ක්‍රියාත්මක වීමට පටන් ගනී.
සාබොල්ක්ස්

720

පිලිතුර වන්නේ, Colorama Python සියලු හරස් වේදිකා වර්ණ සඳහා.

පයිතන් 3.6 උදාහරණ තිර රුවක්: උදාහරණ තිර රුව


322
කොලරාමා හි කතුවරයා ලෙස, b nbv4 සඳහන් කිරීමට ස්තූතියි. මම ටිකක් උත්සාහ කර පැහැදිලි කර දෙන්නෙමි: කොලරාමා අරමුණු කරන්නේ මෙම පිටුවේ වෙනත් බොහෝ පිළිතුරු වල විස්තර කර ඇති ආකාරයටම එකම ANSI කේත භාවිතා කරමින් පයිතන් වැඩසටහන් වලට සියලු වේදිකාවල වර්ණ පර්යන්ත පෙළ මුද්‍රණය කිරීමට ඉඩ දීමයි. වින්ඩෝස් හි, කොලරාමා විසින් මෙම ANSI අක්ෂර stdout වෙතින් ඉවත් කර වර්ණ පා. සඳහා සමාන win32 ඇමතුම් බවට පරිවර්තනය කරයි. වෙනත් වේදිකාවල කොලරාමා කිසිවක් නොකරයි. එබැවින් ඔබට ANSI කේත හෝ ටර්ම්කොලර් වැනි මොඩියුල භාවිතා කළ හැකි අතර කොලරාමා සමඟ ඒවා සියලු වේදිකාවල 'ක්‍රියා කරයි'. ඒ අදහස කෙසේ හෝ වේවා.
ජොනතන් හාර්ට්ලි

2
On ජොනතන්, මෙය සැබවින්ම පුදුමාකාර පුස්තකාලයකි! වේදිකා වර්ණය තරණය කිරීමේ හැකියාව පයිතන් ප්‍රතිදානය ඇත්තෙන්ම හොඳයි. මම තමන්ගේම කොන්සෝලය වර්ණවත් කරන පුස්තකාලයක් සඳහා මෙවලම් සපයමි. මට එම කොන්සෝලයේ ප්‍රතිදානය පර්යන්තයට හරවා ප්‍රතිදානය වර්ණ ගැන්විය හැකිය. දැන් මට පුස්තකාලය ඉහළට ඔසවා වර්ණ තෝරා ගැනීමට පරිශීලකයාට ඉඩ දිය හැකිය. මෙය වර්ණ අන්ධ අයට වැඩ කිරීමට දේවල් සැකසීමට ඉඩ සලසයි, එවිට ඔවුන්ට ප්‍රතිදානය නිවැරදිව දැකගත හැකිය. ස්තූතියි
ඩිමොලිෂුන්

51
මෙය සම්මත පුස්තකාලයේ තිබිය යුතුය ... හරස් වේදිකා වර්ණ සහාය වැදගත් ය, මම සිතමි.
daviewales

5
කොලරාමා නියමයි! ද බලන්න කියලා ansimarkup colorama මත ඉදි කර, ඔබ සරල ටැගය මත පදනම් සලකුණු (උදා: භාවිතා කිරීමට ඉඩ දෙයි කරන, <b>bold</b>පර්යන්තය පෙළ ශෛලිය එක් කිරීම සඳහා)
gvalkov

31
Colorama.init () ඇමතීමෙන් තොරව මෙය ක්‍රියා නොකරයි. ඡන්දය දෙන්න!
ස්මිත් ජොන්ට්

434

වර්ණයක් / විලාසිතාවක් ආරම්භ කරන නූලක් මුද්‍රණය කරන්න, ඉන්පසු නූල්, ඉන්පසු වර්ණය / විලාසිතාවේ වෙනස අවසන් කරන්න '\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()

සැහැල්ලු අඳුරු උදාහරණය (සම්පූර්ණයි)

රූප විස්තරය මෙහි ඇතුළත් කරන්න

අඳුරු ආලෝක උදාහරණය (අර්ධ)

නිමැවුමේ ඉහළ කොටස



4
මට අහන්න පුළුවන්ද, මේ මොන පර්යන්තයද?
ෆ්ලිප්ටැක්

4
එය කෙතරම් අතේ ගෙන යා හැකිද?
රග්ගෙරෝ ටුරා


206

වර්ණයක් ආරම්භ කරන නූලක් සහ වර්ණය අවසන් කරන නූලක් නිර්වචනය කරන්න, ඉන්පසු ඔබේ පෙළ ඉදිරිපස ආරම්භක නූලෙන් සහ අවසානයේ කෙළවරේ මුද්‍රණය කරන්න.

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

මේ පහත සඳහන් නිෂ්පාදනය bashතුළ, urxvtඑය Zenburn ආකාරයේ වර්ණ සමග:

නිමැවුම් වර්ණ

අත්හදා බැලීම් තුළින් අපට තවත් වර්ණ ලබා ගත හැකිය:

වර්ණ අනුකෘතිය

සටහන: \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

2
ඔබ txt blink කළේ කෙසේද
WiLL_K

2
එය දිලිසෙන කුමන කවචය හෝ පර්යන්තයද?
Zypps987

1
(u) rxvt උදාහරණයක් ලෙස
qubodup

7
දිලිසෙන පෙළ ඇත්තෙන්ම හොඳින් ක්‍රියා කරයි. කෙසේ වෙතත් මම එය නවත්වන්නේ කෙසේද? අඛණ්ඩව සිදුවන සියලුම මුද්‍රණ කිසියම් හේතුවක් නිසා දිලිසෙනවා. මගේ පර්යන්තය සිතන්නේ එය පක්ෂ කාලය බවයි!
කැප්ටන්

3
නූල් අවසානයේ දී දැල්වීම, තැබීම \33[0mහෝ ඊට CENDඉහළින්.
Stiffy2000

95

ඔබට ANSI ගැලවීමේ අනුපිළිවෙල ගැන ඉගෙන ගැනීමට අවශ්‍යය. මෙන්න කෙටි උදාහරණයක්:

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

වැඩි විස්තර සඳහා http://en.wikipedia.org/wiki/ANSI_escape_code බලන්න

බ්ලොක් අක්ෂරයක් සඳහා, ic u2588 වැනි යුනිකෝඩ් අක්ෂරයක් උත්සාහ කරන්න:

print(u"\u2588")

එකට ඒ සියල්ල දමා:

print(CSI+"31;40m" + u"\u2588" + CSI + "0m")

3
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)])
Evgeni Sergeev

මෙහි නැවත සැකසීමේ තේරුම කුමක්ද?
MohitC

74

මම ප්‍රතිචාර දක්වන්නේ වින්ඩෝස් 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!")

සටහන: මෙය වෙනත් වින්ඩෝස් විකල්පයන්ට සමාන විකල්පයන් ලබා දුන්නද, වින්ඩෝස් මෙම උපක්‍රමය සමඟ වුවද ANSI කේත සඳහා පූර්ණ සහය නොදක්වයි. සියලුම පෙළ සැරසිලි වර්ණ ක්‍රියා නොකරන අතර සියලු 'දීප්තිමත්' වර්ණ (කේත 90-97 සහ 100-107) සාමාන්‍ය වර්ණවලට සමාන වේ (කේත 30-37 සහ 40-47)

සංස්කරණය කරන්න : ඊටත් වඩා කෙටි ක්‍රමයක් සොයා ගැනීම ගැන @jl ට ස්තූතියි.

tl; dr : os.system("")ඔබේ ගොනුවේ ඉහළට එක් කරන්න.

පයිතන් අනුවාදය: 3.6.7


2
මෙය ක්‍රියාත්මක වේ - වර්ණ විධානය වින්ඩෝස් පර්යන්තය තුළ ANSI කේත සක්‍රීය කිරීම ගැන මම පුදුම වෙමි, මෙය කළ හැකි බව නොදැන මම වසර ගණනාවක් ගියෙමි - විධානය විසින්ම මෙය කරන බවට කිසිදු හෝඩුවාවක් ලබා නොදේ.
ස්ටුවර්ට් ඇක්සන්

@anaksunaman මෙය දැනටමත් වර්ණ පා text වලට සහය දක්වන මෙන්ම වින්ඩෝස් 10 සඳහා සහය දක්වන සියලුම මෙහෙයුම් පද්ධති මත ක්‍රියා කරනු ඇත.
SimpleBinary

AxMaxDoesStuff ඇත්තටම? ඔබ භාවිතා කරන්නේ කුමන පයිතන් අනුවාදයද? මැකෝස් හි කුමන අනුවාදයද?
SimpleBinary

2
ඔබගේ පිළිතුරට බොහෝම ස්තූතියි, im සිම්පල්බිනරි! ඔබේ පිළිතුර සමඟ සෙල්ලම් කරමින්, if sys.platform.lower() == "win32": os.system('color')එය සාධාරණ ලෙස ප්‍රතිස්ථාපනය කිරීමෙන් ඔබට තවත් සරල කළ හැකි බව මම සොයා ගතිමි os.system(''). කිසිදු කොන්දේසියක් අවශ්‍ය නොවන අතර කේතය වින්ඩෝස් 10 සහ ලිනක්ස් යන දෙකෙහිම ක්‍රියාත්මක වේ (මා එය පරීක්ෂා කළ විට). ඔබට පෙනෙන පරිදි, ඔබට පද්ධති ඇමතුමක් ගැනීමට අවශ්‍ය නැත color. ඇමතුම් dir, cd, abcdef,, සාධාරණ හිස් අගයක් වැඩ දඩ (මෙම, හිස්-නොවන නූල් ඉඩ ඔබ දැකීමට කැමති නැහැ ප්රතිදානය මුද්රණය වුවත්).
ජේඑල්

1
කෙටියෙන් කිවහොත්, කැඳවීම colorතීරණාත්මක කොටස නොවේ; එය තියෙන්නේ os.system(command)පවා හුදෙක් හිස් අගයක් - Windows 10. තවද "විධාන" මත ධාවනය වන විට හැකි වර්ණ මුද්රණය දෙයක්, ඇත්තටම විය හැකි කරවන මාර්ගය ම.
ජේඑල්

60

මගේ ප්‍රියතම ක්‍රමය වන්නේ ආශිර්වාද පුස්තකාලයයි (සම්පූර්ණ අනාවරණය: මම එය ලිව්වා). උදාහරණයක් වශයෙන්:

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(' ')

ඔබගේ ක්‍රීඩාවේදී ඔබට වෙනත් පර්යන්ත හැකියාවන් සමඟ සම්බන්ධ වීමට සිදුවුවහොත්, ඔබට එයද කළ හැකිය. ඔබට කියවිය හැකි පරිදි තබා ගැනීමට ඔබට පයිතන්ගේ සම්මත නූල් හැඩතල ගැන්වීම භාවිතා කළ හැකිය:

print '{t.clear_eol}You just cleared a {t.bold}whole{t.normal} line!'.format(t=t)

ආශිර්වාදයේ ඇති හොඳ දෙය නම්, එය (අධික ලෙස පොදු) ANSI- වර්ණ පමණක් නොව, සියලු වර්ගවල පර්යන්තවල වැඩ කිරීමට උපරිම උත්සාහයක් දැරීමයි. භාවිතයට සංක්ෂිප්තව සිටියදී එය කියවිය නොහැකි ගැලවීමේ අනුක්‍රමයන් ඔබේ කේතයෙන් බැහැර කරයි. විනෝද වන්න!


65
වර්ණය පරාමිතියක් ලෙස නොව ක්‍රියාකාරී නාමයක් ලෙස තැබීම සැක සහිත ක්‍රියාවකි.
එල්. වර්ෆ්

1
TLtWorf: ඔබට අවශ්‍ය නම් එය පහසුවෙන් පරාමිතියක් බවට පත් කළ හැකිය getattr. හෝ බොහෝ විට, ඒ වෙනුවට ගතිකව ආකෘති නූල් සාදන්න.
jfs

8
ro ප්‍රෝගෝ ඔබට එය කළ හැකි බව ඔබ එය කළ යුතු යැයි අදහස් නොකෙරේ. වර්ණය ඔබට සමත් විය හැකි පරාමිතියක් නම් එය වඩාත් සාමාන්‍ය ය.
එල්. වර්ෆ්

2
ඔබ can just passපයිතන් ශ්‍රිතයක්.
මැක්ස්නෝ

2
ආශිර්වාද ආයාත කිරීම කවුළු මත ක්‍රියා නොකරන බව සලකන්න, එබැවින් ඔබේ ස්ක්‍රිප්ටය හරස් වේදිකාවක් වීමට අවශ්‍ය නම් එය භාවිතා නොකරන්න.
ඇඩ්වර්සස්

58

sty colorama සමාන වන නමුත්, එය අඩු විස්ථරාත්මක තියෙන්නේ, ආධාරක 8bit හා 24bit (RGB) වර්ණ, ආධාරක muting, ඔබේ ම මෝස්තර ලියාපදිංචි කිරීමට ඔබ ඉඩ ලබා දෙන අතර, හොඳින් වාර්තා හා වඩා, ඇත්තටම නම්යශීලී වේ.

උදාහරණ:

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')

මුද්‍රණ:

රූප විස්තරය මෙහි ඇතුළත් කරන්න

නිරූපණය: රූප විස්තරය මෙහි ඇතුළත් කරන්න


7
ඔබ එය කොලරාමා සමඟ සංසන්දනය කිරීමට සලකා බැලුවහොත් එය ඉතා ප්‍රයෝජනවත් වනු ඇත, මම ඔබේ පුස්තකාලයට වැඩි කැමැත්තක් දක්වන්නෙමි, නමුත් කොටුවෙන් වඩා කෙටි api නිසා පමණක් වන අතර එය වඩාත් ජනප්‍රිය වන්නේ නම් එය ඉතා හොඳ වේ. ස්තූතියි!
වික්ටර් ගැව්රෝ

මම ස්ටයිට කැමතියි, මම මගේ නූල් ස්ටයි සමඟ සංයුති කිරීමට උත්සාහ කරමි, එක් ගැටළුවක් නම්, මම විවිධ වර්ණ මුද්‍රණය කරන විට, පෙරනිමි වර්ණය වෙනුවට පෙර වර්ණයට නැවත සැකසිය හැකිද?
intijk

IctVictorGavro ඒක හොඳ අදහසක්! මට ප්‍රලේඛනය සමඟ සංසන්දනයක් එකතු කළ හැකිය.
රොටරෙටි

ඔබේ ප්‍රශ්නය විවරණ අංශයට නොගැලපේ. මේ ආකාරයේ ප්‍රශ්නයක් සඳහා කරුණාකර නව SO ප්‍රශ්නයක් සාදන්න හෝ ගිතුබ් නිකුතුව ට්රැකර් භාවිතා කරන්න.
රොටරෙටි

53

100 දක්වා වූ සෑම වර්ණ සංයෝජනයක්ම පුනරාවර්තනය කිරීම සඳහා ෆෝ ලූපයක් භාවිතා කරමින් සියලු වර්ණ සහිත පන්තියක් ජනනය කර, පසුව පයිතන් වර්ණ සහිත පන්තියක් ලිවීය. 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'

44

මෙම සරල කේතය උත්සාහ කරන්න

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")

19
යෝජනාව: එම වර්ණ නූල් කෙලින්ම මුද්‍රණය කරනවා වෙනුවට නැවත ලබා දෙන ලැම්බඩාස් අර්ථ දක්වන්න, එවිට එය වෙනත් නූල් සමඟ ඒකාබද්ධව භාවිතා කළ හැකිය.
gustafbstrom

34

Win32 API වෙත ප්‍රවේශ වීම සඳහා වින්ඩෝස් හි ඔබට මොඩියුලය 'win32console' (සමහර පයිතන් බෙදාහැරීම් වලින් ලබා ගත හැකිය) හෝ මොඩියුලය 'ctypes' (Python 2.5 සහ ඉහළ) භාවිතා කළ හැකිය.

ක්‍රම දෙකටම සහය දක්වන සම්පූර්ණ කේතය බැලීමට, ටෙස්ටූබ් වෙතින් වර්ණ කොන්සෝලය වාර්තා කිරීමේ කේතය බලන්න .

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)

2
අවංකවම මෙය කවුළු සමඟ වැඩ කරන විසඳුම පමණි. අනෙක් සියලුම පිළිතුරු එකිනෙකාගේ පිටපතක් පමණි.
ඩැනිලෝ

FWIW, වින්ඩෝස් හි ANSI අනුක්‍රමයන්ට සහය දක්වන ConEmu භාවිතා කිරීම අඩු වේදනාවක් විය හැකිය (ස්වදේශීය පර්යන්තයට වඩා වෙනත් වාසි රැසකට අමතරව). දේශීය විසඳුමක් ලබා ගැනීමට තවමත් නියමයි.
එන්ඩ්‍රේ දෙකම

මම ඩැනිලෝ සමඟ සිටිමි.
මුහම්මද් අලි

1
An ඩැනිලෝ මෙම පිළිතුර දුටුවේය
කොවාල්ස්කි

24

මගේ කේතයේ ඕනෑම තැනක භාවිතා කළ හැකි ගෝලීය කාර්යයන් සහිත මොඩියුලයකට මම @ ජොල්ඩ් පිළිතුර ඔතා ඇත.

ගොනුව: 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")

24

@ ජොයෙල්ඩ්ගේ පිළිතුර මත පදනම්ව මෝඩ සරල ය

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')

2
ඔබ ස්ථානීය තර්ක එකකට වඩා වැඩි ගණනක් හෝ නූල් වර්ගයක් හැර වෙනත් දෙයක් සම්මත කළහොත් මෙය බිඳ වැටෙනු ඇත
රොමේන් වින්සන්ට්

@ රොමේන් වින්සන්ට් එසේ නම්, ස්ථානීය තර්ක එකකට වඩා වැඩි ගණනක් හෝ නූලක් හැර වෙනත් කිසිවක් සම්මත නොකරන්න, රැඳී සිටින්න, මේවා printස්ථානගත කිරීම් ද ? විරෝධය අවලංගු කරන ලදි.
wizzwizz4

1
comment wizzwizz4 මෙම අදහස් දැක්වීමෙන් ඔබ අදහස් කළේ කුමක්දැයි මට විශ්වාස නැත, කෙසේ වෙතත් මට කාරණය නොපෙනේ. ඔබ පංතියක් යෝජනා කිරීමට යන්නේ නම් ..., මුද්‍රණයක් තරම් සරල ක්‍රමයක් ප්‍රතිස්ථාපනය කිරීමට නම්, ඔබට එය පහසුවෙන් කැඩී යාම වළක්වා ගත හැකිය. මගේ මතය පමණයි.
රොමේන් වින්සන්ට්

1
@ රොමේන් වින්සන්ට් මම කියන්නට ගියේ ඔබේ විරෝධය වැරදියි, නමුත් ශ්‍රිතයක් බහුකාර්ය ලෙස printප්‍රතිස්ථාපනය කිරීම සඳහා එහි ක්‍රියාකාරිත්වය නිසි ලෙස ප්‍රතිවර්තනය කිරීමට වග බලා ගත යුතුය.
wizzwizz4

1
@ රොමේන් වින්සන්ට් අසීමිත තර්ක භාවිතා කිරීමට ක්‍රියාත්මක කරයි: <code> def purple(cls, *args, **kwargs): print(cls.PURPLE, *args, cls.END, **kwargs)</code>
එමිලියන් බෝඩෙට්

22

ඔබ win32api භාවිතා නොකරන්නේ නම් වින්ඩෝස් සඳහා ඔබට වර්ණ සමඟ සැනසීමට මුද්‍රණය කළ නොහැක.

ලිනක්ස් සඳහා එය මුද්‍රණය භාවිතා කිරීම තරම්ම සරල ය, ගැලවීමේ අනුපිළිවෙල මෙහි දක්වා ඇත:

වර්ණ

චරිතය කොටුවක් මෙන් මුද්‍රණය කිරීම සඳහා, එය සැබවින්ම රඳා පවතින්නේ ඔබ කොන්සෝල කවුළුව සඳහා භාවිතා කරන අකුරු මතය. පවුම් සංකේතය හොඳින් ක්රියා කරයි, නමුත් එය අකුරු මත රඳා පවතී:

#

21
# 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))

පෙරබිම සහ පසුබිම වෙනස් කරන පෙළ, වර්ණ 0..141 පෙරබිම සහ පසුබිම වෙනස් කරන පෙළ, වර්ණ 142..255


21
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")

මාර්ගගතව උත්සාහ කරන්න


මෙය python3 සඳහා පමණක්ද? pyphon2 සමඟ sep = '' හි දෝෂයක් ඇතිවිය
ScipioAfricanus

20

මම මෙය කිරීම අවසන් කළෙමි, එය පිරිසිදු බව මට හැඟුණි:

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)

තෙවන පාර්ශවීය පැකේජයක් නොමැතිව එය කිරීම සඳහා මෙය ඇත්තෙන්ම හොඳයි.
ජේමි කන්සල්

20

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සියලු පර්යන්තවල ක්‍රියා නොකරනු ඇත, මැක් / උබුන්ටු මත ක්‍රියා නොකරයි.

උදා

>>> 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

තිර රුව:

රූප විස්තරය මෙහි ඇතුළත් කරන්න


18

withනැවත සැකසිය යුතු (පයිතන් 3 සහ කොලරාමා භාවිතා කරමින්) මෙවැනි විකරණකාරක සමඟ මූල පදය කෙතරම් හොඳින් මිශ්‍ර වේද යන්න සැලකිල්ලට ගන්න :

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")

, Colorama අත්හදා භාවිතා print(Style.BRIGHT + "Header Test")සහ print (Style.DIM + word)ඇත්තටම නියමයි කඩිනම් නිර්මාණය කරන්න.
ටොම්

contextlibPy3 සඳහා භාවිතා කිරීමට මෙය වෙනස් කිරීමට අවශ්‍ය වනු ඇත .
පූසා

atcat: එය අවශ්‍ය වන්නේ පයිතන්ගේ කුමන අනුවාදයෙන්ද?
ජැනස් ට්‍රොල්සන්

මම විශ්වාස කරන්නේ 3 සහ ඊට වැඩි - එය @contextlib.contextmanagerමත සැරසිලි කරුවෙකු සිටිය යුතුය, නැත?
පූසා

1
at කැට්: ඇයි? නොමැතිව විශිෂ්ට ලෙස ක්රියා කරයි.
ජැනස් ට්‍රොල්සන්

17

ඔබට ශාප පුස්තකාලයේ පයිතන් ක්‍රියාත්මක කිරීම භාවිතා කළ හැකිය: http://docs.python.org/library/curses.html

එසේම, මෙය ක්‍රියාත්මක කරන්න, එවිට ඔබට ඔබේ කොටුව සොයාගත හැකිය:

for i in range(255):
    print i, chr(i)

පුද්ගලිකව මම සිතන්නේ 'ශාප' පුස්තකාලය 'ආශිර්වාද' මගින් මුළුමනින්ම ග්‍රහණය කර ඇති බවත්, ඒ හා සමානව 'ඉල්ලීම්' 'යූරිලිබ්' ග්‍රහණය කර ඇති බවත්ය.
ජොනතන් හාර්ට්ලි

17

ඔබට CLINT භාවිතා කළ හැකිය:

from clint.textui import colored
print colored.red('some warning message')
print colored.green('nicely done!')

එය GitHub වෙතින් ලබා ගන්න .


1
පළමු සබැඳිය ගොස් ඇති බැවින් මම එය ඉවත් කළෙමි; ජීඑච් සම්බන්ධතාවය තවමත් හොඳයි (ව්‍යාපෘතිය "සංරක්ෂිත" සහ මූලික වශයෙන් අතහැර දැමුවද, මට රැස් කර ගත හැකි දෙයින්).
ජියාකොමෝ ලකාවා

16

මම පරක්කු බව මම දනිමි. නමුත්, මට 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))

මෙය ඔබට ලබා දෙයි:

ColorIt හි පින්තූරය

මෙය හරස් වේදිකාවක් වන අතර මැක්, ලිනක්ස් සහ කවුළු මත පරීක්ෂා කර ඇති බව ද සඳහන් කිරීම වටී.

ඔබට එය අත්හදා බැලීමට අවශ්‍ය විය හැකිය: https://github.com/CodeForeverAndEver/ColorIt

සටහන: දිලිසීම, ඇල අකුරු, තද අකුරු ආදිය දින කිහිපයකින් එකතු වේ.


පයිප්ප භාවිතයෙන් එය ස්ථාපනය කිරීමට හැකි වන්නේ කවදාද?
ncopiy

@ncopiy ආයුබෝවන්! ඉදිරි දින දෙක ඇතුළත එය කිරීමට මම සැබවින්ම සැලසුම් කරමි! : D දැනට, පිටුවේ ඇති ස්ථාපන උපදෙස් සමඟ ඔබට එය ස්ථාපනය කළ හැකිය.
BeastCoder

14

ඔබ ක්‍රීඩාවක් වැඩසටහන්ගත කරන්නේ නම් පසුබිම් වර්ණය වෙනස් කර අවකාශ පමණක් භාවිතා කිරීමට ඔබ කැමතිද? උදාහරණයක් වශයෙන්:

print " "+ "\033[01;41m" + " " +"\033[01;46m"  + "  " + "\033[01;42m"

මේ පිළිබඳ වැඩි විස්තර මෙතැනින්
ප්‍රායෝගික

11

ඔබ වින්ඩෝස් භාවිතා කරන්නේ නම්, මෙන්න ඔබ යන්න!

# 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 ... ")

ඔබට එකම පේළියේ විවිධ වර්ණ අවශ්‍ය නම්, ඇමතුම් අතර stdout ධාරාව ගලා යන්න:print("%X --> %s" % (color, "Have a fine day!"), end='', flush=True)
user2023861

11

ඔබ ජැන්ගෝ භාවිතා කරන්නේ නම්

>>> from django.utils.termcolors import colorize
>>> print colorize("Hello World!", fg="blue", bg='red',
...                 opts=('bold', 'blink', 'underscore',))
Hello World!
>>> help(colorize)

ඡායාරූපය:

රූප

(මම සාමාන්‍යයෙන් ධාවක පර්යන්තයේ නිදොස්කරණය සඳහා වර්ණ ප්‍රතිදානය භාවිතා කරමි, එබැවින් මම එය එකතු කළෙමි.)

එය ඔබේ යන්ත්‍රයේ
$ python -c "import django; print django.VERSION"
ස්ථාපනය කර ඇත්දැයි ඔබට පරීක්ෂා කළ හැකිය: එය ස්ථාපනය කිරීමට පරීක්ෂා කරන්න: ජැන්ගෝ ස්ථාපනය කරන්නේ කෙසේද

එය උත්සාහ කර බලන්න !!


10

මෙන්න ශාප උදාහරණයක්:

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)

මෙම දෝෂය සමඟ වින්ඩෝස් (x64) යටතේ ඔබේ කේතය අසමත් වේ: AttributeError: 'මොඩියුලය' වස්තුවට 'එතීම' යන ගුණාංගයක් නොමැත
සෝරින්

1
@Sorin Sbarnea: ඒ අනුව පිඹුරා කිරීමට නිල ප්රලේඛනය ශාප docs.python.org/library/curses.html , ශාපයන් මොඩියුලය කවුළු සහය නොදක්වයි. "එවැනි මොඩියුලයක් නැත" හෝ මේ වගේ දෙයක් වෙනුවට ඔබට මෙම දෝෂය ඇති විය හැක, මන්ද ඔබ බොහෝ විට ඔබේ පරීක්ෂණ ගොනුවට "curses.py" ලෙස නම් කර ඇති නිසා එය ආනයනය කරයි.
nosklo

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')

10

පෙළ UI සහ සජීවිකරණ ගොඩනැගීම සඳහා asciimatics විසින් අතේ ගෙන යා හැකි ආධාරකයක් සපයයි:

#!/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

Asciicast:

ascii ශබ්දය අතර දේදුන්න පාට පා text ය


10

පයිතන් 3 මුද්‍රණ ශ්‍රිතය ආවරණය කරන තවත් පයිපී මොඩියුලයක්:

https://pypi.python.org/pypi/colorprint

ඔබත් නම් එය python 2.x හි භාවිතා කළ හැකිය from __future__ import print. මොඩියුල පයිපි පිටුවෙන් පයිතන් 2 උදාහරණයක් මෙන්න:

from __future__ import print_function
from colorprint import *

print('Hello', 'world', color='blue', end='', sep=', ')
print('!', color='red', format=['bold', 'blink'])

නිමැවුම් "හෙලෝ, ලෝකය!" නිල් පැහැයෙන් සහ විශ්මයජනක සලකුණ තද රතු සහ දිලිසෙන සලකුණු වලින්.

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.