मैं कुछ असामान्य स्थिति में चला गया है। मैं स्क्रिप्ट के लिए इंटरेक्टिव कंसोल (शिक्षण/परीक्षण प्रयोजनों के लिए) कोशिश कर रहा हूँ, और मैं निम्नलिखित की कोशिश की:पाइथन के इंटरैक्टिव प्रॉम्प्ट ">> "आउटपुट कहां है?
$ python > /dev/null
Python 2.7.3 (v2.7.3:70274d53c1dd, Apr 9 2012, 20:52:43)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> print 3
>>>
3
मुद्रित नहीं है, इसलिए स्पष्ट रूप से सब कुछ stderr
पर था। अब तक सब ठीक है। लेकिन तब हम अनुप्रेषित stderr
:
$ python 2> /dev/null
>>> print 3
3
>>>
कैसे शीघ्र दोनों ही मामलों में मुद्रित किया जा सकता?
संपादित करें: stdout
और stderr
दोनों को पुनर्निर्देशित करने के लिए बिल्कुल कुछ भी मुद्रित नहीं होता है। तो पाइथन स्पष्ट रूप से stdout
या stderr
में से एक "चुनना" है। क्या ऐसा होने वाला दस्तावेज है? मैं यह नहीं समझ सका कि यह वास्तव में पायथन स्रोत कोड में कैसे किया जाता है।
हू, यह अजीब बात है। शायद यह 'isatty' की जांच करता है? – delnan
यह मेरा अनुमान होगा, लेकिन मुझे लगता है कि पाइथन वास्तव में ऐसा नहीं करता है। अजीब चीज यह है कि 'PyOS_StdioReadline', जो फ़ंक्शन इनपुट पढ़ने के लिए ज़िम्मेदार प्रतीत होता है, को' stderr' पर प्रॉम्प्ट प्रिंट करने के लिए हार्डकोड किया जाता है। यदि 'stderr' को' stdout' पर रीडायरेक्ट किया गया था, जैसा कि दूसरा उदाहरण सुझाता है, हमें बैनर देखना चाहिए। – nneonneo
पायथन को पढ़ाने के लिए डिज़ाइन किए गए टूल का उपयोग करना आसान हो सकता है, जैसे [आईपीथॉन की नोटबुक सुविधा] (http://ipython.org/notebook.html)। –