ফাইল বর্ণনাকারী হল OS কার্নেল দ্বারা সরাসরি প্রদত্ত ফাইলগুলির সাথে কাজ করার জন্য একটি নিম্ন-স্তরের সুবিধা৷ একটি ফাইল বর্ণনাকারী একটি পূর্ণসংখ্যা যা প্রতিটি প্রক্রিয়ার জন্য কার্নেল দ্বারা রাখা খোলা ফাইলগুলির একটি টেবিলে খোলা ফাইলটিকে সনাক্ত করে। অনেকগুলি সিস্টেম কল ফাইল বর্ণনাকারীকে গ্রহণ করে, কিন্তু সেগুলি কাজ করার জন্য সুবিধাজনক নয়, সাধারণত নির্দিষ্ট-প্রস্থ বাফারের প্রয়োজন হয়, নির্দিষ্ট শর্তে একাধিক পুনঃপ্রচার এবং ম্যানুয়াল ত্রুটি পরিচালনার প্রয়োজন হয়৷
ফাইল অবজেক্টগুলি হল পাইথন ক্লাস যা ফাইলগুলির সাথে কাজ করা আরও সুবিধাজনক এবং কম ত্রুটি-প্রবণ করতে ফাইল বর্ণনাকারীকে মোড়ানো হয়৷ উদাহরণস্বরূপ, তারা ত্রুটি-হ্যান্ডলিং, বাফারিং, লাইন-বাই-লাইন রিডিং প্রদান করে এবং যখন আবর্জনা সংগ্রহ করা হয় তখন বন্ধ হয়ে যায়।
-
বিল্ট-ইন open() একটি ফাইলের নাম নেয় এবং একটি নতুন পাইথন ফাইল অবজেক্ট রিটার্ন করে। মনে রাখবেন এটি os.open()
থেকে আলাদা -
os.open() একটি ফাইলের নাম নেয় এবং একটি নতুন ফাইল বর্ণনাকারী প্রদান করে। এই ফাইল বর্ণনাকারীকে অন্যান্য নিম্ন-স্তরের ফাংশনে প্রেরণ করা যেতে পারে, যেমন os.read() এবং os.write(), অথবা os.fdopen().
-
os.fdopen() একটি বিদ্যমান ফাইল বর্ণনাকারী নেয় এবং এটির চারপাশে একটি পাইথন ফাইল অবজেক্ট তৈরি করে। এটি একটি ফাইল বর্ণনাকারীকে একটি সম্পূর্ণ ফাইল অবজেক্টে রূপান্তর করে। C কোডের সাথে ইন্টারফেস করার সময় বা শুধুমাত্র নিম্ন-স্তরের ফাইল বর্ণনাকারী তৈরি করে এমন APIগুলির সাথে এটি কার্যকর।
সুতরাং এই দুটি ফাংশনই পাইথনে কাজ করার জন্য সিস্টেম কার্যকারিতার আরও কাছাকাছি প্রদান করে।