2013-01-09 20 views
17

करने के लिए इसे पुनः निर्देशित मेरी अजगर कार्यक्रम की शुरुआत में मैं निम्न पंक्ति है के बाद:अजगर - रीसेट सामान्य करने के लिए stdout, पहले एक फाइल

sys.stdout = open('stdout_file', 'w') 

मेरे कार्यक्रम के माध्यम से आधे रास्ते मैं stdout के लिए वापस सेट करना चाहते हैं सामान्य stdout। मैं यह कैसे करु?

+2

संबंधित: http://stackoverflow.com/questions/14197009/how-can-i-redirect-print-output-of-a-function-in-python/14197079#14197079 – mgilson

उत्तर

26

मूल stdout को sys.__stdout__ के रूप में उपयोग किया जा सकता है। यह is documented

+0

बहुत धन्यवाद, और मैं सराहना करता हूं दस्तावेज़ों के लिए लिंक। – jononomo

+0

जब भी मैं किसी मॉड्यूल विशेषता को अधिभारित करता हूं, तो मैं इस शैली का उपयोग करता हूं (जहां कोई नामस्थान संघर्ष नहीं है)। उदाहरण के लिए 'io .__ file__ = io.file; def io_file (* args, ** kwargs): ... और io .__ फ़ाइल __ (* args, ** kwargs) लौटाएं; io.file = io_file' – ThorSummoner