दिलचस्प पोस्ट
WCF बाइंडिंग द्वारा उपयोग किए गए Serializations के प्रदर्शन परीक्षण बूलियन मानों को संग्रहीत करने के लिए कौन सी MySQL डेटा प्रकार का उपयोग किया जाता है एनपीएम / यूलर जनरेटर-कोणीय बिना एसड्यूओ इंस्टॉल करें SetMaximumSize () और setPrefferedSize () काम नहीं करते समय मैं JComponent पर कड़ी मेहनत कैसे निर्धारित करूं? ललाबा अभिव्यक्ति का प्रयोग उपक खंड क्यों Windows64 x86-64 पर अन्य सभी ओएस से अलग कॉलिंग सम्मेलन का उपयोग करता है? कैसे निजी डेटा से डेटा डेटा सेट बनाने के लिए (uninformative जगह धारकों के साथ चर नाम और स्तर की जगह)? जावास्क्रिप्ट में तेजी से स्थिर सॉर्टिंग एल्गोरिथ्म कार्यान्वयन जांच करें कि कोई उपयोगकर्ता नीचे स्क्रॉल कर रहा है या नहीं हम Typeahead.js में कैसे रिमोट सेट करते हैं? Android में कैलेंडर ईवेंट कैसे जोड़ें? स्थानीय नोटिफिकेशन के लिए कस्टम ध्वनि चुनें हाइबरनेट @ किसी भी-संबंधित एनोटेशन का उपयोग कैसे करें? चल रहा है jmap सॉकेट फ़ाइल खोलने में असमर्थ कैसे प्राथमिक AppDomain से एक विधानसभा अनलोड?

प्रोग्राम के भीतर से अजगर (अजगर-यू में) अजगर में स्टडआउट

संभव डुप्लिकेट:
पायथन आउटपुट बफरिंग

क्या मेरे कोड में से अजगर -u चलाने के लिए कोई रास्ता नहीं है? यह नाकाम होने पर, क्या मेरा प्रोग्राम यह जांच सकता है कि यह -u मोड में चल रहा है और त्रुटि संदेश के साथ बाहर निकलता है? यह लिनक्स पर है (Ubuntu 8.10 सर्वर)

वेब के समाधान से एकत्रित समाधान "प्रोग्राम के भीतर से अजगर (अजगर-यू में) अजगर में स्टडआउट"

सबसे अच्छा मैं के साथ आ सकता है:

>>> import os >>> import sys >>> unbuffered = os.fdopen(sys.stdout.fileno(), 'w', 0) >>> unbuffered.write('test') test>>> >>> sys.stdout = unbuffered >>> print 'test' test 

जीएनयू / लिनक्स पर परीक्षण किया गया। ऐसा लगता है कि यह विंडोज पर भी काम करना चाहिए यदि मुझे पता था कि कैसे sys.stdout को फिर से खोलना है, तो यह बहुत आसान होगा:

 sys.stdout = open('???', 'w', 0) 

संदर्भ:
http://docs.python.org/library/stdtypes.html#file-objects
http://docs.python.org/library/functions.html#open
http://docs.python.org/library/os.html#file-object-creation

[संपादित करें]

ध्यान दें कि यह पहले से लिखने से पहले sys.stdout को बंद करना बेहतर होगा।

आप हमेशा शेबांग लाइन में -u पैरामीटर पास कर सकते हैं:

 #!/usr/bin/python -u 

आप इस तथ्य का उपयोग कर सकते हैं कि stderr buffered कभी नहीं होता है और stdout को stderr पर रीडायरेक्ट करने का प्रयास करता है:

 import sys #buffered output is here doStuff() oldStdout = sys.stdout sys.stdout = sys.stderr #unbuffered output from here on doMoreStuff() sys.stdout = oldStdout #the output is buffered again doEvenMoreStuff() 

मान लें कि आप Windows पर हैं:

 msvcrt.setmode(sys.stdout.fileno(), os.O_BINARY)