फाइल डिस्क्रिप्टर ओएस कर्नेल द्वारा सीधे प्रदान की गई फाइलों के साथ काम करने के लिए एक निम्न-स्तरीय सुविधा है। एक फाइल डिस्क्रिप्टर एक पूर्णांक है जो प्रत्येक प्रक्रिया के लिए कर्नेल द्वारा रखी गई खुली फाइलों की एक तालिका में खुली फाइल की पहचान करता है। कई सिस्टम कॉल फ़ाइल डिस्क्रिप्टर को स्वीकार करते हैं, लेकिन उनके साथ काम करना सुविधाजनक नहीं है, आमतौर पर निश्चित-चौड़ाई वाले बफ़र्स की आवश्यकता होती है, कुछ स्थितियों में कई पुन:प्रयास और मैन्युअल त्रुटि प्रबंधन की आवश्यकता होती है।
फ़ाइल ऑब्जेक्ट पायथन वर्ग हैं जो फाइलों के साथ काम करने को अधिक सुविधाजनक और कम त्रुटि-प्रवण बनाने के लिए फाइल डिस्क्रिप्टर को लपेटते हैं। उदाहरण के लिए, वे एरर-हैंडलिंग, बफरिंग, लाइन-बाय-लाइन रीडिंग प्रदान करते हैं और कचरा एकत्र होने पर बंद हो जाते हैं।