मैं अपनी स्क्रीन संदेशों colorizing के लिए निम्नलिखित कार्य किया है:STDOUT करने के लिए मुद्रण और लॉग फ़ाइल जबकि एएनएसआई रंग कोड को हटाने
def error(string):
return '\033[31;1m' + string + '\033[0m'
def standout(string):
return '\033[34;1m' + string + '\033[0m'
मैं उन्हें इस्तेमाल इस प्रकार है:
print error('There was a problem with the program')
print "This is normal " + standout("and this stands out")
मैं प्रवेश करना चाहते हैं एएनएसआई रंग कोड के बिना एक फ़ाइल (एसटीडीओयूटी के अलावा) को आउटपुट, उम्मीद है कि प्रत्येक print
कथन में दूसरी "लॉगिंग" लाइन जोड़ने के बिना।
कारण यह है कि यदि आप बस python program.py > out
हैं तो फ़ाइल out
में एएनएसआई रंग कोड होंगे, जो एक सादा पाठ संपादक में खुलते हैं तो भयानक लगते हैं।
कोई सलाह?
बहुत बढ़िया जवाब लागू करने के लिए एक मामूली संशोधन की आवश्यकता है - यह वास्तव में मैं क्या जरूरत है हो सकता है। मैं वास्तव में लॉगिंग मॉड्यूल का उपयोग कर रहा हूं, लेकिन उपयोगकर्ता को आउटपुट को रीडायरेक्ट करने और मानव पठनीय फ़ाइल प्राप्त करने का विकल्प देना चाहता हूं। लॉग स्वयं लॉगिंग मॉड्यूल द्वारा बनाया गया है (और आपके दृष्टिकोण के साथ मैं सबसे अधिक संभावना प्राप्त करूंगा जो मैं चाहता हूं)। – Escualo
मैंने अभी आपके दृष्टिकोण का परीक्षण किया है और यह बिल्कुल अपेक्षित रूप से काम करता है। बहुत धन्यवाद! – Escualo