2014-04-24 4 views
5

में टेक्स्ट मैं आईपीथॉन के क्यूटीकॉलोल में बोल्ड, या रंगों में, या संभवतः इटालिक्स में प्रदर्शित करने की कोशिश कर रहा हूं।प्रिंटिंग बोल्ड, रंगीन, इत्यादि, ipython qtconsole

मैं इस लिंक मिल गया: How do I print bold text in Python?, और पहले और दूसरे उत्तर करते थे, लेकिन qtconsole में, केवल रेखांकित विकल्प काम करता है।

मैं कोशिश:

print '\033[1m' + 'Hello World!' + '\033[0m'

और मिलती है:

Hello World!

(कोई बोल्डफ़ेस)। रंग या तो काम नहीं करते हैं। लेकिन:

print '\033[4m' + 'Hello World!' + '\033[0m'

और मिलती है:

Hello World!

रेखांकित साथ

यह केवल qtconsole में है। टर्मिनल में ipython चल रहा है, यह इस तरह से बोल्डफेस और रंग करने के लिए काम करता है।

अन्य विकल्पों को कड़ी में सुझाव दिया और एक अन्य, Print in terminal with colors using Python?, उससे लिंक किए गए थे, लेकिन वे सभी को और अधिक जटिल लगता है, और के लिए आवश्यक लगता है की तुलना में अधिक व्यापक पैकेज का उपयोग करने के, मैं क्या जो केवल प्राप्त करने के लिए है करने के लिए, चाहते हैं सामान्य टर्मिनल की तरह प्रदर्शित करने के लिए qtconsole करता है।

क्या किसी को पता है कि क्या हो रहा है? क्या यह केवल qtconsole की एक सीमा है?

उत्तर

6

वे एएनएसआई एस्केप हैं, वर्णों के विशेष अनुक्रम जो टर्मिनल फ़ॉन्ट शैलियों को स्विच करने की प्रक्रिया करते हैं। क्यूटी कंसोल उनमें से कुछ का अर्थ है, लेकिन गंभीर टर्मिनलों के सभी नहीं। यह क्रम लाल रंग में मुद्रित करने के लिए, उदाहरण के लिए काम करता है:

print('\x1b[1;31m'+'Hello world'+'\x1b[0m') 

हालांकि, अगर आप एक क्रॉस मंच आवेदन लिखने के लिए कोशिश कर रहे हैं, ध्यान रखें कि विंडोज कमांड प्रॉम्प्ट इन कोड को संभाल नहीं करता है। कुछ जटिल पैकेज उन्हें विंडोज पर समान प्रभाव उत्पन्न करने के लिए संसाधित कर सकते हैं।

क्यूटी सांत्वना भी साधारण HTML प्रदर्शित कर सकते हैं इस तरह:

from IPython.display import HTML 
HTML("<i>Italic text</i>") 

लेकिन निश्चित रूप से, एचटीएमएल नियमित टर्मिनलों में काम नहीं करता।

1

आप IPython नोटबुक (markdowns) के मुख्य पाठ मतलब हैं, तो आप 2 रेखांकन पात्रों सीधे से पहले और अपने पाठ के बाद यह बोल्ड बनाने के लिए रख सकते हैं:

__BOLD TEXT__ =>बोल्ड पाठ

अगर आपको लगता है कि इससे पहले कि एक बैकस्लैश शब्दों में कहें, यह counteracted किया जाएगा:

\__BOLD TEXT__ => __BOLD TEXT__

+0

लिए काम करता है में markdown सेल की आवश्यकता है। सवाल कोड सेल का उपयोग करने के बारे में था। – Charles

0

कुछ और तरीके आप के आसपास ठीक कर सकते हैं (मैं IPython नोटबुक में करने की कोशिश की, सुनिश्चित करें कि दूसरे के बारे में नहीं) ..

**BOLD TEXT** 

ऊपर बोल्ड पाठ उत्पादन होगा: बोल्ड पाठ

*__BOLD TEXT__* 

बोल्ड का उत्पादन करेगा और इटैलिक पाठ: बोल्ड पाठ

+2

यह केवल मार्कडाउन सेल में काम करता है। आप इसे प्रिंट ('** टेक्स्ट **') द्वारा काम नहीं कर सकते –

4

Jupyter नोटबुक में, इस समस्या के हल के लिए एक साफ रास्ता usin है जी markdown:

from IPython.display import Markdown, display 
def printmd(string): 
    display(Markdown(string)) 

और फिर कुछ ऐसा कार्य करें:

printmd("**bold text**") 

बेशक, यह, बोल्ड इटैलिक, आदि के लिए महान है, लेकिन markdown ही रंग को लागू नहीं करता है। लेकिन, आप अपने markdown में एचटीएमएल जगह कर सकते हैं, और कुछ इस तरह मिलती है:

printmd("<span style='color:red'>Red text</span>") 

तुम भी printmd समारोह में इस लपेट सकता है:

def printmd(string, color=None): 
    colorstr = "<span style='color:{}'>{}</span>".format(color, string) 
    display(Markdown(colorstr)) 

और फिर

printmd("**bold and blue**", color="blue") 
तरह की शानदार चीज़ों

रंगों के लिए, आप हेक्साडेसिमल नोटेशन का भी उपयोग कर सकते हैं (उदाहरण के लिए color = "#00FF00" हरे रंग के लिए)

स्पष्ट करने के लिए, हालांकि हम markdown उपयोग करते हैं, यह एक कोड सेल है: आप की तरह कर सकते हैं:

for c in ('green', 'blue', 'red', 'yellow'): 
    printmd("Writing in {}".format(c), color=c) 
बेशक

, इस पद्धति का एक दोष यह एक Jupyter नोटबुक के भीतर किया जा रहा है पर निर्भरता है।

0

मैं पिछले अपूर्ण जवाब को पूरा करना चाहता हूं। अतिरिक्त पैकेज आयात किए बिना अधिक जटिल और मजेदार चीजें किए जा सकते हैं। जैसे

print('\x1b[1;03;31;46m'+'Hello'+ '\x1b[0;4;30;42m' + ' world' '\x1b[0m') 

यानी।: के साथ

ओपन:

बंद साथ
'\x1b[XX;YY;ZZm' 

:

'\x1b[0m' 

कहाँ XX, YY और ZZ से नंबर दिए गए हैं: https://en.wikipedia.org/wiki/ANSI_escape_code

ऐसा लगता है कि यह बहुत ज्यादा है क्या काम करता है यह देखने के लिए आप कंसोल के रूप में उपयोग करने पर निर्भर करते हैं।

पाठ स्टाइल

  • 1 वृद्धि तीव्रता (यह मुख्य आकर्षण और पाठ पर एक साथ मेरे मामले में चल रही है)
  • 3 Itallic
  • :

    मेरे लिए काम कर निम्नलिखित के संयोजन कर रहे हैं 4 अंडरलाइन

पाठ रंग

  • 30 काले पाठ
  • 31 गहरा लाल पाठ
  • 32 गहरा हरा पाठ
  • 33 लाल पाठ
  • 34 गहरे नीले रंग पाठ
  • 35 बैंगनी पाठ
  • 36 ब्लू टेक्स्ट
  • 37 ग्रे टेक्स्ट

तेज पाठ रंग

  • 1; 30 ग्रे पाठ (ब्राइट काला)
  • 1; 31 ऑरेंज पाठ (चमकदार लाल)
  • 1; 32 चमकीले हरे रंग पाठ
  • 1 ; 33 ब्राइट पीला टेक्स्ट
  • 1; 34 ब्राइट ब्लू टेक्स्ट
  • 1; 35 चमकदार बैंगनी टेक्स्ट
  • 1; 36 उज्ज्वल सियान पाठ
  • 1; 37 सफेद पाठ (ब्राइट ग्रे)

पृष्ठभूमि रंग (अर्थातपर प्रकाश डाला)

  • 40 काले उजागर
  • 41 गहरा लाल
  • 42 गहरा हरा
  • 43 लाल प्रकाश डाला
  • 44 गहरे नीले रंग उजागर
  • 45 बैंगनी प्रकाश डाला
  • 46 ब्लू प्रकाश डाला प्रकाश डाला हाइलाइट
  • 47 ग्रे हाइलाइट

ध्यान दें कि 1; 42 आदि भी काम करता है उसी प्रकार

विंडोज 7, अजगर 3.6, IPython कंसोल पर परीक्षण किया गया, स्पाइडर 3.2.3 यह मेरे