मैं निम्नलिखित कोड है:क्यों खुले (सही, 'डब्ल्यू') sys.stdout.write जैसे पाठ मुद्रित करते हैं?
with open(True, 'w') as f:
f.write('Hello')
क्यों इस कोड को प्रिंट पाठ Hello
के बजाय एक त्रुटि बढ़ा है?
मैं निम्नलिखित कोड है:क्यों खुले (सही, 'डब्ल्यू') sys.stdout.write जैसे पाठ मुद्रित करते हैं?
with open(True, 'w') as f:
f.write('Hello')
क्यों इस कोड को प्रिंट पाठ Hello
के बजाय एक त्रुटि बढ़ा है?
built-in function documentation on open()
से:
open(file, mode='r', buffering=-1...
फ़ाइल या तो एक स्ट्रिंग या बाइट्स पथ (पूर्ण या वर्तमान कार्यशील निर्देशिका के सापेक्ष) फ़ाइल खोले जाने के लिए या एक पूर्णांक फ़ाइल डिस्क्रिप्टर का देने पर आपत्ति है की फ़ाइल
लिपटे होने के लिए "पूर्णांक फ़ाइल वर्णनकर्ता" आगे os
module documentation में वर्णन किया गया है कि:
उदाहरण के लिए, मानक इनपुट आमतौर पर फ़ाइल डिस्क्रिप्टर 0 होता है, मानक आउटपुट 1 होता है, और मानक त्रुटि 2 होती है। प्रक्रिया द्वारा खोले गए आगे की फ़ाइलों को 3, 4, 5, और आगे आवंटित किया जाएगा।
के बाद से बूलियन्स एक int
उपवर्ग हैं, False
0
और True
1
साथ के लिए भी इस्तेमाल किया जा सकता। इसलिए, True
का फ़ाइल डिस्क्रिप्टर खोलना 1
का फ़ाइल डिस्क्रिप्टर खोलने जैसा ही है, जो मानक आउटपुट का चयन करेगा।
तो '0' के बारे में क्या? :) –
और इसका मतलब यह है कि जब आप कोई फ़ाइल खोलते हैं, तो यह '3',' 4', '5', आदि होगा? –
जैसा कि यह दूसरे उद्धरण ब्लॉक में कहता है, '0' मानक इनपुट है, और अनुक्रमिक पूर्णांक असाइन किए जाएंगे क्योंकि अधिक फ़ाइलें खोली गई हैं। – TigerhawkT3