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