2012-09-19 17 views
7

अगर मैं लिनक्स के तहत अजगर में इस चलाने के काम करता है: पायथन: विंडोज़ में भी काम करने के लिए मैं एएनएसआई एस्केप कोड कैसे बना सकता हूं?

start = "\033[1;31m" 
end = "\033[0;0m" 
print "File is: " + start + "<placeholder>" + end 

लेकिन यह काम नहीं करता है अगर मैं Windows में इसे चलाने, मैं कैसे एएनएसआई मुक्ति कोड विंडोज पर भी काम कर सकते हैं?

+2

देखें http://stackoverflow.com/questions/8358533/python-module-to-enable-ansi-for-stdout-on- विन्डोज़ उपयोगी हो सकता है – pr0gg3d

+0

धन्यवाद, किया गया :-) – pr0gg3d

उत्तर

10

आप Python module to enable ANSI colors for stdout on Windows? की जांच कर सकता है, तो यह उपयोगी है देखने के लिए।

colorama मॉड्यूल क्रॉस-प्लेटफ़ॉर्म प्रतीत होता है।

आप colorama स्थापित:

pip install colorama 

तब: http://pypi.python.org/pypi/colorconsole

यह Windows, मैक ओएस एक्स और Linux के साथ काम करता है:

import colorama 
colorama.init() 
start = "\033[1;31m" 
end = "\033[0;0m" 
print "File is: " + start + "<placeholder>" + end 
+0

यह रंगमा के साथ काम करता है मैंने पूरा कोड शामिल करने के लिए उत्तर संपादित किया। –

4

आप https://github.com/kennethreitz/clint

पर एक नज़र ले सकता है रीडमी से:

>>> from clint.textui import colored, puts 

>>> puts(colored.red('red text')) 
red text 

# It's red in Windows, OSX, and Linux alike. 
+0

अगर मैं कुछ उपयोग करता मुझे कुछ ऐसा चाहिए जो मानक पुस्तकालय के साथ आता है। –

+2

आप अभी भी स्रोत पर एक नज़र डाल सकते हैं। पर्दे के पीछे यह कॉलरामा का उपयोग करता है, जो मूल रूप से एस्केप दृश्यों को प्रतिस्थापित करने के लिए sys.stdout.write को लपेटता है। – mfussenegger

1

मैं एक साधारण मॉड्यूल में उपलब्ध लिखा था। यह लिनक्स और मैक के लिए एएनएसआई का उपयोग करता है, लेकिन मूलभूत विंडोज़ पर कंसोल फ़ंक्शंस को कॉल करता है। आपके पास रंग, कर्सर पोजीशनिंग और कीबोर्ड इनपुट हैं। यह शाप के प्रतिस्थापन नहीं है, लेकिन यदि आपको सरल स्क्रिप्ट या ASCII गेम में उपयोग करने की आवश्यकता है तो बहुत उपयोगी हो सकता है।

डॉक्स यहां पाया जा सकता है: http://code.google.com/p/colorconsole/wiki/PageName

पुनश्च: यह Print in terminal with colors using Python? के लिए एक ही जवाब है, लेकिन मैं एक उत्तर से जोड़ने के लिए कैसे पता नहीं था।