यदि आप open - open(name[, mode[, buffering]]) की फंक्शन परिभाषा को देखें, तो आप देखेंगे कि यह Python 2 में 3 तर्क लेता है, तीसरा तर्क है बफरिंग वैकल्पिक बफ़रिंग तर्क फ़ाइल के वांछित बफ़र आकार को निर्दिष्ट करता है:0 का अर्थ है असंबद्ध, 1 का अर्थ है लाइन बफ़र, किसी अन्य सकारात्मक मान का अर्थ है उस आकार (लगभग) के बफर का उपयोग करना (बाइट्स में)। एक नकारात्मक बफ़रिंग का अर्थ है सिस्टम डिफ़ॉल्ट का उपयोग करना, जो आमतौर पर ट्टी उपकरणों के लिए लाइन बफ़र किया जाता है और अन्य फ़ाइलों के लिए पूरी तरह से बफ़र किया जाता है। यदि छोड़ा गया है, तो सिस्टम डिफ़ॉल्ट का उपयोग किया जाता है।
उदाहरण के लिए, यदि आप 128 बाइट्स के बफर आकार वाली फ़ाइल खोलना चाहते हैं तो आप फ़ाइल को इस तरह खोल सकते हैं -
>>> open('my_file', 'r+', 128)
पायथन 3 में, ओपन की फंक्शन डेफिनिशन है:ओपन (फाइल, मोड ='आर', बफरिंग =-1, एन्कोडिंग =कोई नहीं, एरर =कोई नहीं, न्यूलाइन =कोई नहीं, क्लोजफड =ट्रू, ओपनर =कोई नहीं)। बफ़रिंग एक वैकल्पिक पूर्णांक है जिसका उपयोग बफ़रिंग नीति सेट करने के लिए किया जाता है। बफरिंग बंद करने के लिए 0 पास करें (केवल बाइनरी मोड में अनुमति है), 1 लाइन बफरिंग (केवल टेक्स्ट मोड में प्रयोग करने योग्य) का चयन करने के लिए, और एक पूर्णांक> 1 निश्चित आकार के चंक बफर के बाइट्स में आकार को इंगित करने के लिए पास करें। जब कोई बफ़रिंग तर्क नहीं दिया जाता है, तो डिफ़ॉल्ट बफ़रिंग नीति निम्नानुसार काम करती है -
-
बाइनरी फ़ाइलें निश्चित आकार के टुकड़ों में बफ़र की जाती हैं; बफर का आकार अंतर्निहित डिवाइस के "ब्लॉक आकार" को निर्धारित करने और io.DEFAULT_BUFFER_SIZE पर वापस आने के लिए एक अनुमानी प्रयास का उपयोग करके चुना जाता है।
-
"इंटरएक्टिव" टेक्स्ट फाइलें (फाइलें जिनके लिए isatty() रिटर्न ट्रू) लाइन बफरिंग का उपयोग करती हैं। अन्य टेक्स्ट फ़ाइलें बाइनरी फ़ाइलों के लिए ऊपर वर्णित नीति का उपयोग करती हैं।
पायथन 3 का उदाहरण पायथन 2 जैसा ही है। उदाहरण . के लिए , यदि आप 128 बाइट्स के बफर आकार वाली फ़ाइल खोलना चाहते हैं तो आप फ़ाइल को इस तरह खोल सकते हैं -
>>> open('my_file', 'r+', 128)