আপনি যদি open - open(name[, mode[, buffering]] এর ফাংশনের সংজ্ঞাটি দেখেন তবে আপনি দেখতে পাবেন যে এটি পাইথন 2-এ 3টি আর্গুমেন্ট লাগে, তৃতীয়টি বাফারিং ঐচ্ছিক বাফারিং আর্গুমেন্ট ফাইলের কাঙ্খিত বাফার সাইজ নির্দিষ্ট করে:0 মানে আনবাফার করা, 1 মানে লাইন বাফার করা, অন্য কোনো ইতিবাচক মান মানে (প্রায়) সেই সাইজের (বাইটে) বাফার ব্যবহার করা। একটি নেতিবাচক বাফারিং মানে সিস্টেম ডিফল্ট ব্যবহার করা, যা সাধারণত tty ডিভাইসের জন্য লাইন বাফার করা হয় এবং অন্যান্য ফাইলের জন্য সম্পূর্ণরূপে বাফার করা হয়। যদি বাদ দেওয়া হয়, সিস্টেম ডিফল্ট ব্যবহার করা হয়।
উদাহরণস্বরূপ, আপনি যদি 128 বাইটের বাফার আকারের একটি ফাইল খুলতে চান তবে আপনি এইভাবে ফাইলটি খুলতে পারেন -
>>> open('my_file', 'r+', 128)
পাইথন 3-এ ওপেনের ফাংশনের সংজ্ঞা হল:open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener =কোনও নয়)। বাফারিং হল একটি ঐচ্ছিক পূর্ণসংখ্যা যা বাফারিং নীতি সেট করতে ব্যবহৃত হয়। বাফারিং বন্ধ করতে 0 পাস করুন (শুধুমাত্র বাইনারি মোডে অনুমোদিত), 1 লাইন বাফারিং নির্বাচন করুন (শুধুমাত্র টেক্সট মোডে ব্যবহারযোগ্য), এবং একটি নির্দিষ্ট-আকারের খণ্ড বাফারের বাইটে আকার নির্দেশ করতে একটি পূর্ণসংখ্যা> 1। যখন কোনো বাফারিং আর্গুমেন্ট দেওয়া হয় না, ডিফল্ট বাফারিং নীতি নিম্নরূপ কাজ করে −
-
বাইনারি ফাইলগুলি নির্দিষ্ট আকারের খণ্ডে বাফার করা হয়; অন্তর্নিহিত ডিভাইসের "ব্লক সাইজ" নির্ধারণ করার চেষ্টা করে এবং io.DEFAULT_BUFFER_SIZE-এ ফিরে আসা হিউরিস্টিক ব্যবহার করে বাফারের আকার বেছে নেওয়া হয়।
-
"ইন্টারেক্টিভ" টেক্সট ফাইল (যে ফাইলগুলির জন্য isatty() True রিটার্ন করে) লাইন বাফারিং ব্যবহার করে। অন্যান্য পাঠ্য ফাইলগুলি বাইনারি ফাইলগুলির জন্য উপরে বর্ণিত নীতি ব্যবহার করে৷
পাইথন 3-এর উদাহরণ পাইথন 2-এর মতো। উদাহরণ , আপনি যদি 128 বাইটের বাফার আকারের একটি ফাইল খুলতে চান তবে আপনি এইভাবে ফাইলটি খুলতে পারেন -
>>> open('my_file', 'r+', 128)