পাইথনে টার্মিনালে রঙিন পাঠ্য কীভাবে প্রিন্ট করা যায়?


2123

পাইথনের টার্মিনালে আমি কীভাবে রঙিন পাঠ্য আউটপুট দেব? সলিড ব্লকের উপস্থাপনের জন্য সেরা ইউনিকোড প্রতীক কোনটি?


6
আরও ভাল প্রতিক্রিয়া পেতে আপনার কিছু অতিরিক্ত তথ্য নির্দিষ্ট করতে হবে: মাল্টিপ্লাটফর্ম? বাহ্যিক মডিউল গ্রহণ করা হয়?
সোরিন

2
আইপিথন এটি করে, ক্রস প্ল্যাটফর্ম। তারা কি ব্যবহার দেখুন?
এন্ডোলিথ

এই প্রতীকটি একটি দুর্দান্ত রঙিন ব্লক তৈরি করবে: কেবলমাত্র সমস্যাটি এটি ASCII প্রসারিত হতে পারে, সম্ভবত আপনি এটি ব্যবহার করে কাজ করতে পারেনhttp://stackoverflow.com/questions/8465226/using-extended-ascii-codes-with-python
সামি বেঞ্চিরিফ

কিছু টার্মিনাল ইউনিকোড অক্ষরও প্রদর্শন করতে পারে। যদি এটি আপনার টার্মিনালের ক্ষেত্রে সত্য হয়, সম্ভাব্য অক্ষরগুলি প্রায় সীমাহীন।
ayke

4
এই উত্তরটি মোটামুটি দেরী এসেছিল, কিন্তু এটা আমার সেরা ... বেশী ভোট উপরে এটা Windows এর জন্য বিশেষ হ্যাক প্রয়োজন হতে যেহেতু এই এক ঠিকঠাক কাজ করছে বলে মনে হয়: stackoverflow.com/a/3332860/901641
ArtOfWarfare

উত্তর:


1828

আপনি কোন প্ল্যাটফর্মে আছেন তার উপর এটি কিছুটা নির্ভর করে। এটি করার সর্বাধিক সাধারণ উপায় হ'ল এএনএসআই এস্কেপ সিকোয়েন্সগুলি মুদ্রণ করা। একটি সাধারণ উদাহরণের জন্য, এখানে ব্লেন্ডার বিল্ড স্ক্রিপ্টগুলির কিছু পাইথন কোড রয়েছে :

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)

বা পাইথন 3.6 + সহ:

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

এটি ওএস এক্স, লিনাক্স এবং উইন্ডোজ সহ ইউনিক্সে কাজ করবে (আপনি যদি এএনসিকন ব্যবহার করেন বা উইন্ডোজ 10 এ আপনি ভিটি 100 নকলকরণ সক্ষম করে থাকেন )। রঙ সেট করতে, কার্সারটি সরানো এবং আরও অনেক কিছুর জন্য অ্যানসি কোড রয়েছে।

যদি আপনি এটির সাথে জটিল হয়ে উঠতে চলেছেন (এবং আপনি যদি মনে করেন যে আপনি কোনও গেম লিখছেন তবে) আপনার "অভিশাপ" মডিউলটি খতিয়ে দেখা উচিত, যা আপনার জন্য জটিল জটিল অংশগুলি পরিচালনা করে। পাইথন Curses কীভাবে একটি ভাল ভূমিকা।

আপনি যদি বর্ধিত ASCII ব্যবহার করেন না (যেমন কোনও পিসিতে নয়), আপনি 127 এর নীচে ascii অক্ষর আটকে আছেন এবং '#' বা '@' সম্ভবত কোনও ব্লকের জন্য আপনার সেরা বাজি is আপনি যদি নিশ্চিত করতে পারেন যে আপনার টার্মিনালটি আইবিএম বর্ধিত আসকি অক্ষর সেট ব্যবহার করছে , আপনার কাছে আরও অনেক বিকল্প রয়েছে। অক্ষর 176, 177, 178 এবং 219 "ব্লক অক্ষর" are

কিছু আধুনিক পাঠ-ভিত্তিক প্রোগ্রাম, যেমন "বামন ফোর্ট্রেস", গ্রাফিকাল মোডে পাঠ্য মোড অনুকরণ করে এবং ক্লাসিক পিসি ফন্টের চিত্র ব্যবহার করে। আপনি এই বিটম্যাপগুলির কিছু খুঁজে পেতে পারেন যা আপনি বামন দুর্গ উইকি দেখুন ( ব্যবহারকারীর তৈরি টাইলসেট ) এ ব্যবহার করতে পারেন ।

টেক্সট মোড ডেমো কনটেস্ট পাঠ্য মোডে গ্রাফিক্স করছেন জন্য আরো সম্পদ আছে।

হুম .. আমি মনে করি এই উত্তরটি কিছুটা দূরে সরিয়ে নিয়েছে। যদিও আমি একটি মহাকাব্য পাঠ্য-ভিত্তিক অ্যাডভেঞ্চার গেমের পরিকল্পনার মাঝে আছি। আপনার রঙিন লেখার জন্য শুভকামনা!


তবে ধরুন আমার ডিফল্ট প্রম্পটটি কালো নয় - আপনি কি মনে করেন যে এই কৌশলগুলি পরে পাইথনকে পুনরায় স্থান দেওয়া সম্ভব?
অ্যাডোব

4
লিনাক্স, আপনি ব্যবহার করতে চাইতে পারেন tput, তাই মত যেহেতু এটি আরো পোর্টেবল কোড ফলাফল।
মার্টিন উয়েডিং

3
@ কাওয়াস: disableআপনি যখন কোনও ফাইলে আউটপুটটি পাইপ করেন তখন আসল ব্যবহারের ক্ষেত্রে ; যখন সরঞ্জামগুলি catরঙগুলিকে সমর্থন করতে পারে তবে ফাইলে রঙের তথ্য প্রিন্ট না করা ভাল।
সেবাস্তিয়ান মাচ

1
@AlexanderSimko, এখানে উইন্ডোজ 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 রেঞ্জের রঙগুলি মানক নয় এবং প্রকৃতপক্ষে, আমার টার্মিনালে তারা সবগুলি বর্ণিত রঙ দেয় না don't পরিবর্তনশীল নাম। এটি 30-37 এবং 40-47 স্ট্যান্ডার্ড রেঞ্জ ব্যবহার করা ভাল। সূত্র: en.wikedia.org/wiki/…
বালু

802

আমি আশ্চর্য হয়েছি যে পাইথন টার্মকালার মডিউলটির কথা কেউ উল্লেখ করেনি । ব্যবহার বেশ সহজ:

from termcolor import colored

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

বা পাইথন 3 এ:

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

গেম প্রোগ্রামিং এবং "রঙিন ব্লক" এর জন্য এটি যথেষ্ট পরিশীলিত নাও হতে পারে ...


2
যেহেতু এটি এএনএসআই কোডগুলি নির্গমন করছে, এটি উইন্ডোজ (ডস কনসোল) এ কাজ করে যদি উত্তরী.সেসগুলি লোড হয়? সমর্থন.microsoft.com/kb/101875
ফিল পি

37
সবেমাত্র লক্ষ্য করা গেছে যে 13/01/2011 হিসাবে এটি এখন এমআইটি লাইসেন্সের অধীনে
আলেকজান্ডার সেসেপকভ

12
ইউনিটেটস নেই (কলারামার মতো নয়) এবং ২০১১ সাল থেকে আপডেট হয়নি
জানুস ট্রয়লসেন

5
termcolor.COLORSআপনাকে রঙের একটি তালিকা দেয়
axxlr

23
উইন্ডোজ os.system('color')প্রথমে রান করুন , তারপরে এএনএসআই পলায়নের ক্রমগুলি কাজ শুরু করে start
Szabolcs

717

উত্তরটি পাইথনের সমস্ত ক্রস-প্ল্যাটফর্মের রঙিনের জন্য কলরামা

একটি পাইথন ৩.6 উদাহরণ স্ক্রিনশট: উদাহরণ স্ক্রিনশট


317
কলোরামার লেখক হিসাবে, @ এনবিভি 4 উল্লেখ করার জন্য ধন্যবাদ। আমি চেষ্টা করব এবং কিছুটা পরিষ্কার করব: কলারামার লক্ষ্য হল পাইথন প্রোগ্রামগুলি এই পৃষ্ঠার আরও অনেক উত্তরে বর্ণিত একই এএনএসআই কোডগুলি ব্যবহার করে সমস্ত প্ল্যাটফর্মে রঙিন টার্মিনাল পাঠ্যটি প্রিন্ট করা উচিত। উইন্ডোজে, কলোরামা এই এএনএসআই অক্ষরকে স্টাডআউট থেকে আলাদা করে এবং রঙিন পাঠ্যের জন্য সমান উইন 32 কলগুলিতে রূপান্তর করে। অন্যান্য প্ল্যাটফর্মে, কলোরামা কিছুই করে না। অতএব আপনি এএনএসআই কোড, বা টার্মক্লোরের মতো মডিউল এবং কলোরামার সাথে ব্যবহার করতে পারেন, তারা সমস্ত প্ল্যাটফর্মে কেবল 'কাজ' করেন। যে ধারণা, যাইহোক।
জোনাথন হার্টলে

2
@ জনাথন, এটি সত্যই একটি দুর্দান্ত গ্রন্থাগার! প্লাটফর্ম রঙের পাইথন আউটপুট ক্রস করার ক্ষমতাটি সত্যই দুর্দান্ত এবং দরকারী। আমি একটি লাইব্রেরির জন্য এমন সরঞ্জাম সরবরাহ করছি যা এটির নিজস্ব কনসোলকে রঙ করে। আমি সেই কনসোলের আউটপুটটিকে টার্মিনালে পুনর্নির্দেশ করতে এবং আউটপুটটিকে রঙিন করতে পারি। এখন আমি এমনকি লাইব্রেরিটির একটি আপ করতে পারি এবং ব্যবহারকারীর রং নির্বাচন করতে পারি। এটি রঙিন অন্ধ লোকদের কাজ করতে সেট করতে দেয় যাতে তারা প্রকৃতপক্ষে সঠিকভাবে আউটপুটটি দেখতে পারে। ধন্যবাদ
Demolishun

50
এটি স্ট্যান্ডার্ড লাইব্রেরিতে থাকা উচিত ... ক্রস প্ল্যাটফর্মের রঙ সমর্থন গুরুত্বপূর্ণ, আমি মনে করি।
ডেভিউলেস

5
কলরমা দুর্দান্ত! এছাড়াও কটাক্ষপাত আছে ansimarkup , যা colorama নির্মিত এবং আপনি একটি সহজ ট্যাগটি ভিত্তিক মার্কআপ (যেমন ব্যবহার করার অনুমতি দেয় হয় <b>bold</b>টার্মিনাল পাঠ্য শৈলী যোগ করার জন্য)
gvalkov

30
কলরামা.আইএনটি () কল না করে এটি কাজ করে না। ভোট দিন!
স্মিথ জন্থ

427

একটি স্ট্রিং মুদ্রণ করুন যা রঙ / শৈলী শুরু করে, তারপরে স্ট্রিংটি, তারপরে রঙ / শৈলীর পরিবর্তনটি এর সাথে শেষ করুন '\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()

হালকা অন্ধকার উদাহরণ (সম্পূর্ণ)

এখানে চিত্র বর্ণনা লিখুন

গাark় অন হালকা উদাহরণ (আংশিক)

আউটপুট শীর্ষ অংশ


8
এটি বেশিরভাগ শেলগুলিতে পাশাপাশি আইপথনে কাজ করে, বেশিরভাগ অ্যাপ্লিকেশনগুলির জন্য যথেষ্ট ভাল
ড্যাশেই

4
আমি জিজ্ঞাসা করতে পারি, এটি কোন টার্মিনাল?
ফ্লিপট্যাক

4
এটা কিভাবে বহনযোগ্য?
রাগ্গেরো তুররা

2
সংক্ষিপ্ত একক বাস্তবায়ন: gist.github.com/Sheljohn/68ca3be74139f66dbc6127784f638920
জোনাথন এইচ

203

একটি স্ট্রিং যা একটি রঙ শুরু করে এবং একটি স্ট্রিং বর্ণটি শেষ করে, তারপরে আপনার পাঠ্যটি প্রারম্ভের স্টার্ট স্ট্রিং এবং শেষে স্ট্রিংয়ের সাথে মুদ্রণ করুন।

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
আপনি কীভাবে টেক্সট
জ্বলজ্বল করলেন

2
কোন শেল বা টার্মিনাল এটি জ্বলজ্বল করে?
জাইপ্পস 987

1
(u) rxvt উদাহরণস্বরূপ
12:58

6
জ্বলজ্বলে লেখা সত্যিই খুব ভালভাবে কাজ করে। আমি কীভাবে এটি বন্ধ করব? টানা সমস্ত প্রিন্ট কোনও কারণে জ্বলজ্বল করছে। আমার টার্মিনাল মনে হয় এটি পার্টির সময়!
অধিনায়ক

3
স্ট্রিংয়ের শেষে জ্বলজ্বলে, রাখুন \33[0mবা তার CENDউপরে।
স্টিফি 2000

94

আপনি এএনএসআই পলায়নের ক্রমগুলি সম্পর্কে জানতে চান। একটি সংক্ষিপ্ত উদাহরণ এখানে:

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

আরও তথ্যের জন্য দেখুন http://en.wikedia.org/wiki/ANSI_escape_code

একটি ব্লক চরিত্রের জন্য, ইউনিকোডের মতো অক্ষর ব্যবহার করে দেখুন \ 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)])
এভেজেনি সার্জিভ

এখানে পুনরায় সেট করার অর্থ কী?
মোহিতসি

69

আমি প্রতিক্রিয়া জানাচ্ছি কারণ আমি উইন্ডোজ 10 এ এএনএসআই কোডগুলি ব্যবহার করার একটি উপায় খুঁজে পেয়েছি, যাতে আপনি কোনও মডিউল তৈরি না করেই পাঠ্যের রঙ পরিবর্তন করতে পারেন:

এই কাজটি করে তোলে এমন লাইনটি os.system("")বা অন্য কোনও সিস্টেম কল, যা আপনাকে টার্মিনালে এএনএসআই কোডগুলি মুদ্রণের অনুমতি দেয়:

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

দ্রষ্টব্য: যদিও এটি অন্যান্য উইন্ডোজ বিকল্পগুলির মতো একই বিকল্পগুলি দেয় তবে উইন্ডোজ এএনএসআই কোডগুলি পুরোপুরি সমর্থন করে না, এমনকি এই কৌশলটিও। সমস্ত পাঠ্য অলঙ্করণের রঙগুলি কাজ করে না এবং সমস্ত 'উজ্জ্বল' রং (কোড 90-97 এবং 100-107) নিয়মিত রঙের মতোই প্রদর্শিত হয় (কোডস 30-77 এবং 40-47)

সম্পাদনা করুন : আরও ছোট পদ্ধতি আবিষ্কার করার জন্য @ জেএলকে ধন্যবাদ।

tl; dr : os.system("")আপনার ফাইলের শীর্ষের কাছে যুক্ত করুন।

পাইথন সংস্করণ: 3.6.7


2
এটি কাজ করে - আমি সত্যিই অবাক হয়েছি যে রঙিন কমান্ডটি উইন্ডোজ টার্মিনালে এএনএসআই কোড সক্ষম করে, আমি কয়েক বছর যাবত এটি সম্ভব হয়েছিল তা না জেনে চলেছি - কমান্ড নিজেই কোনও চিহ্ন দেয় না যে এটি এটি করে।
স্টুয়ার্ট অ্যাকসন

1
সহজতম এবং পুরোপুরি কাজ করে। ধন্যবাদ।
এরি

3
পরিষ্কার হওয়ার জন্য, এটি কেবল উইন্ডোজ 10-এ কাজ করবে
আনাকসুনামান

2
উইন্ডোজ 7 / 8.1 এ কাজ করে না।
নিকোস

2
আপনার উত্তরের জন্য অনেক ধন্যবাদ, @ সিম্পলবাইনারি! আপনার উত্তরটি নিয়ে ঘুরে বেড়ানো, আমি দেখতে পেয়েছি যে আপনি if sys.platform.lower() == "win32": os.system('color')কেবল এটির সাথে প্রতিস্থাপন করে আরও সরল করতে পারেন os.system('')। কোনও শর্তের প্রয়োজন নেই, এবং কোডটি উইন্ডোজ 10 এবং লিনাক্স উভয় ক্ষেত্রেই চলে (যখন আমি এটি পরীক্ষা করেছি)। আপনি দেখতে পাচ্ছেন, আপনাকে কোনও সিস্টেম কল করতে হবে না color। কল dir, cd, abcdef, এবং শুধুমাত্র একটি খালি স্ট্রিং কাজ জরিমানা (যদিও খালি নয় এমন স্ট্রিং সম্ভবত আউটপুট তোমাকে দেখতে চাই না প্রিন্ট হবে)।
জেএল

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)

আশীর্বাদ সম্পর্কে দুর্দান্ত বিষয়টি হ'ল এটি (কেবলমাত্র অত্যধিক সাধারণ) এএনএসআই-রঙিন নয়, সমস্ত ধরণের টার্মিনালগুলিতে কাজ করার সর্বোত্তম চেষ্টা করে। এটি ব্যবহারের সংক্ষিপ্ত থাকা অবস্থায় আপনার অপরিবর্তনীয় অব্যাহতি সিকোয়েন্সগুলিও আপনার কোডের বাইরে রাখে। আনন্দ কর!


65
রঙটিকে কোনও ফাংশনের নাম হিসাবে এবং পরামিতি হিসাবে না রেখে দেওয়া প্রশ্নবিদ্ধ অনুশীলন।
LtWorf

1
@ এলটি ওয়ার্ফ: আপনার getattrযদি প্রয়োজন হয় তবে আপনি এটি সহজেই ব্যবহার করে প্যারামিটার তৈরি করতে পারেন । বা আরও সম্ভবত, কেবল পরিবর্তে পরিবর্তে ফর্ম্যাট স্ট্রিংটি তৈরি করুন।
jfs

8
@ প্রোগো আপনি এই কাজটি করতে পারবেন তার অর্থ এই নয় যে আপনার এটি করা উচিত। রঙটি যদি এমন একটি প্যারামিটার হয় যা আপনি কেবল পাস করতে পারেন তবে এটি আরও সাধারণ gener
LtWorf

2
আপনি can just passএকটি অজগর ফাংশন।
ম্যাক্সনো

2
নোট করুন যে আশীর্বাদ আমদানি উইন্ডোতে কাজ করে না তাই আপনার স্ক্রিপ্টটি ক্রস প্ল্যাটফর্মের প্রয়োজন হলে এটি ব্যবহার করবেন না।
অ্যাডভারসাস

58

শূকরের খোঁয়াড় colorama অনুরূপ, কিন্তু এটা কম বাগাড়ম্বরপূর্ণ সমর্থন করেন 8bit এবং 24bit সমর্থন নিঃশব্দ, সত্যিই নমনীয় তথ্যসমৃদ্ধ এবং আরো হয়, (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')

কপি করে প্রিন্ট:

এখানে চিত্র বর্ণনা লিখুন

ডেমো: এখানে চিত্র বর্ণনা লিখুন


7
এটি খুব কার্যকর হবে যদি আপনি এটি কলোরামার সাথে তুলনা করার বিষয়টি বিবেচনা করেন, আমি আপনার গ্রন্থাগারটিকে পছন্দ করি তবে কেবল বাক্স থেকে আরও সংক্ষিপ্ত এপিআই, এবং এটি আরও জনপ্রিয় হলে এটি দুর্দান্ত হবে। ধন্যবাদ!
ভিক্টর গ্যাভ্রো

আমি স্টাইলটি পছন্দ করি এবং আমি স্ট্রিংয়ের সাথে আমার স্ট্রিংটি ফর্ম্যাট করার চেষ্টা করছি, একটি সমস্যা হ'ল আমি যখন একাধিক রং প্রিন্ট করি তখন আমি কি ডিফল্ট রঙের পরিবর্তে আগের রঙটিতে পুনরায় সেট করতে পারি?
intijk

@ ভিক্টর গাভ্রো এটি একটি ভাল ধারণা! আমি ডকুমেন্টেশনের সাথে একটি তুলনা যুক্ত করতে পারি।
রোটারেটি

@ ইন্টিজক আপনার প্রশ্নটি মন্তব্য বিভাগে আসলেই ফিট করে না। এই জাতীয় প্রশ্নের জন্য দয়া করে একটি নতুন এসও প্রশ্ন তৈরি করুন বা গিথুব ইস্যু ট্র্যাকার ব্যবহার করুন।
রোটারেটি

53

লুপের জন্য লুপ ব্যবহার করে রঙের প্রতিটি সংমিশ্রণ 100 পর্যন্ত পুনরুক্ত করার জন্য একটি ক্লাস তৈরি করেছে, তারপরে অজগর রঙের সাথে একটি ক্লাস লিখেছিল। আপনি যেমন কপি এবং পেস্ট করুন, আমার দ্বারা জিপিএলভি 2:

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

উইন্ডোতে আপনি উইন 32 এপিআই অ্যাক্সেস করতে মডিউল 'উইন 32 কনসোল' (কিছু পাইথন বিতরণে উপলব্ধ) বা মডিউল 'সিটিপস' (পাইথন 2.5 এবং তার বেশি) ব্যবহার করতে পারেন use

উভয় উপায়ে সমর্থন করে এমন সম্পূর্ণ কোডটি দেখতে, টেস্টোব থেকে বর্ণের কনসোল রিপোর্টিং কোডটি দেখুন

টাইপ উদাহরণ:

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
সত্যই এটি উইন্ডোগুলির সাথে কাজ করে এমন একমাত্র সমাধান। অন্যান্য সমস্ত উত্তরগুলি কেবলমাত্র প্রত্যেকেরই অনুলিপি।
ডানিলো

এফডাব্লুআইডাব্লু, উইন্ডোজ এ এএনএসআই সিকোয়েন্সগুলি (দেশীয় টার্মিনালের উপরের অন্যান্য সুবিধাগুলি বাদে) সমর্থন করে কনেমু ব্যবহার করা কম ব্যথা হতে পারে। একটি নেটিভ সমাধান যদিও এখনও দুর্দান্ত।
এন্ড্রে উভয়ই

আমি ড্যানিলোর সাথে আছি।
মুহাম্মদ আলী

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
@ wizzwizz4 আমি নিশ্চিত নই যে আপনি এই মন্তব্যে কী বোঝাতে চেয়েছিলেন, আমি বিন্দুটি দেখতে পাচ্ছি না। আপনি যদি কোনও ক্লাসের প্রস্তাব দিতে চলেছেন ..., মুদ্রণের মতো সহজ পদ্ধতির প্রতিস্থাপন করার জন্য, আপনি এটিকে এত সহজে ভাঙ্গনীয় এড়াতে পারবেন। শুধুমাত্র আমার অভিমত.
রোমেন ভিনসেন্ট

1
@ রোমাইনভিনসেন্ট আমি বলতে যাচ্ছিলাম যে আপনার আপত্তিটি ভুল ছিল, তবে কোনও ফাংশনকে বহুমুখী হিসাবে প্রতিস্থাপনের জন্য printএটির কার্যকারিতাটি সঠিকভাবে প্রতিলিপি করা উচিত তা নিশ্চিত করা উচিত।
wizzwizz4

1
@ রোমেনভান্সেন্ট অসীম যুক্তিগুলি ব্যবহার করতে কার্যকর করুন: <কোড> def purple(cls, *args, **kwargs): print(cls.PURPLE, *args, cls.END, **kwargs)</code>
এমিলিয়ান বাউদেট

23

আমি @ জোড়ের উত্তরগুলি বিশ্বব্যাপী ফাংশনগুলির সাথে একটি মডিউলে গুটিয়ে রেখেছি যা আমি আমার কোডের যে কোনও জায়গায় ব্যবহার করতে পারি।

ফাইল: লগ.পি

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

22

উইন্ডোজের জন্য আপনি উইন 32 এপি ব্যবহার না করে রং সহ কনসোল প্রিন্ট করতে পারবেন না।

লিনাক্সের জন্য এটি প্রিন্ট ব্যবহারের মতোই সহজ, এখানে অব্যাহতিক্রমগুলি বর্ণিত রয়েছে:

রং

চরিত্রটি কোনও বাক্সের মতো মুদ্রণের জন্য এটি কনসোল উইন্ডোর জন্য আপনি কোন ফন্টটি ব্যবহার করছেন তা নির্ভর করে। পাউন্ড প্রতীক ভাল কাজ করে, তবে এটি ফন্টের উপর নির্ভর করে:

#

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


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 ব্যবহার করে @ জোড় জবাবের উপর বিল্ডিং 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

স্ক্রীনশট:

এখানে চিত্র বর্ণনা লিখুন


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

অনলাইন চেষ্টা করুন


এটি কি পাইথন 3 এর জন্য? পাইথন 2 দিয়ে সেপ = '' তে ত্রুটি পেয়েছে
ScipioAfricanus

পাইথন 3 উবুন্টুতে পুরোপুরি কাজ করছেন 18.04
জুলিয়াস

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

কলোরামার চেষ্টা করেছেন, ব্যবহৃত হয়েছে print(Style.BRIGHT + "Header Test")এবং print (Style.DIM + word)একটি দুর্দান্ত প্রম্পট তৈরি করতে।
টম

contextlibপাই 3 ব্যবহারের জন্য এটি পরিবর্তন করতে হবে ।
বিড়াল

@ কেট: পাইথনের কোন সংস্করণ থেকে এটি প্রয়োজনীয় হবে?
জানুস ট্রয়লসেন

আমি বিশ্বাস করি 3 এবং তার বেশি - এটির @contextlib.contextmanagerউপর একটি সজ্জা করা উচিত, না?
বিড়াল

1
@ কেট: কেন? ছাড়াই দুর্দান্ত কাজ করে।
জানুস ট্রয়লসেন

17

আপনি অভিশাপ পাঠাগারটির পাইথন বাস্তবায়ন ব্যবহার করতে পারেন: http://docs.python.org/library/curses.html

এছাড়াও, এটি চালান এবং আপনি আপনার বাক্সটি খুঁজে পাবেন:

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

ব্যক্তিগতভাবে আমি মনে করি যে 'অভিশাপ' দ্বারা গ্রন্থাগারটি সম্পূর্ণভাবে 'দোয়া' দ্বারা গ্রহন করা হয়েছে, একইভাবে 'অনুরোধগুলি' 'urllib' ইত্যাদি গ্রহন করেছে
জোনাথন হার্টলি

17

আপনি ক্লিন্ট ব্যবহার করতে পারেন:

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

গিটহাব থেকে এটি পান


1
প্রথম লিঙ্কটি গেছে তাই আমি এটি সরিয়েছি; জিএইচ লিঙ্কটি এখনও ভাল (যদিও প্রকল্পটি "সংরক্ষণাগারভুক্ত" এবং মূলত আমি যা সংগ্রহ করতে পারি তা থেকে ছেড়ে দেওয়া হয়)।
গিয়াকোমো লাকাভা

14

আপনি যদি কোনও গেম প্রোগ্রামিং করে থাকেন তবে আপনি ব্যাকগ্রাউন্ডের রঙ পরিবর্তন করতে এবং কেবল ফাঁকা জায়গা ব্যবহার করতে চান? উদাহরণ স্বরূপ:

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

এ সম্পর্কে আরও এখানে পাওয়া যাবে- linux.byexferences.com/archives/184/…
বাস্তবিক

14

আমি জানি যে আমি দেরি করে ফেলেছি। তবে, আমার কাছে কালার আইটি নামে একটি গ্রন্থাগার রয়েছে । এটি অত্যন্ত সহজ।

এখানে কিছু উদাহরন:

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

এটি আপনাকে দেয়:

কালারআইটির ছবি

এটিও লক্ষণীয় যে এটি ক্রস প্ল্যাটফর্ম এবং এটি ম্যাক, লিনাক্স এবং উইন্ডোতে পরীক্ষা করা হয়েছে।

আপনি এটি চেষ্টা করতে পারেন: https://github.com/CodeForeverAndEver/ColorIt

দ্রষ্টব্য: ঝলকানি, ইতালি, সাহসী ইত্যাদি কিছু দিনের মধ্যে যুক্ত হবে।


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

আপনি যদি একই লাইনে বিভিন্ন বর্ণ চান, তবে কলগুলির মধ্যে print("%X --> %s" % (color, "Have a fine day!"), end='', flush=True)
স্টাডাউট

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) এর অধীনে ব্যর্থ হয়: অ্যাট্রিবিউটআরার: 'মডিউল' অবজেক্টটির কোনও 'র‌্যাপার' নেই
সোরিন

1
@ সোরিন সারবারিয়া: সেই অনুযায়ী অজগরটি ডকস.পাইথন.আর. / লাইবারি / ক্রসস.চ.টি.এম. তে সরকারী দস্তাবেজগুলিকে অভিশাপ দেয় , উইন্ডোজগুলিতে শাপের মডিউল সমর্থিত নয়। সম্ভবত "এই জাতীয় কোনও মডিউল" বা এর মতো কিছু না হয়ে আপনি এই ত্রুটিটি পেয়েছেন কারণ সম্ভবত আপনি নিজের পরীক্ষার ফাইলটির নাম দিয়েছেন "অভিশাপ.পি" তাই এটি নিজেই আমদানি করছে।
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:

রাশি রংয়ের পাঠ্য আসকি শব্দের মধ্যে


10

তবুও আরেকটি পাইপি মডিউল যা পাইথন 3 মুদ্রণ ফাংশনটি গুটিয়ে রাখে:

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

এটি অজগর ২.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'])

ফলাফল "হ্যালো, বিশ্ব!" নীল বর্ণের শব্দ এবং উদ্দীপনা চিহ্নটি গা bold় লাল এবং জ্বলজ্বলে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.