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