Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Python

अजगर में os.open और os.fdopen में क्या अंतर है?


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

फ़ाइल ऑब्जेक्ट Python वर्ग हैं जो फ़ाइलों के साथ काम करने को अधिक सुविधाजनक और कम त्रुटि-प्रवण बनाने के लिए फ़ाइल डिस्क्रिप्टर को लपेटते हैं। उदाहरण के लिए, वे एरर-हैंडलिंग, बफरिंग, लाइन-बाय-लाइन रीडिंग प्रदान करते हैं और कचरा एकत्र होने पर बंद हो जाते हैं।

  • बिल्ट-इन ओपन () एक फ़ाइल नाम लेता है और एक नया पायथन फ़ाइल ऑब्जेक्ट देता है। ध्यान दें कि यह os.open()

    . से अलग है
  • os.open() एक फ़ाइल नाम लेता है और एक नया फ़ाइल डिस्क्रिप्टर देता है। यह फ़ाइल डिस्क्रिप्टर अन्य निम्न-स्तरीय कार्यों, जैसे os.read() और os.write(), या os.fdopen() को पास किया जा सकता है।

  • os.fdopen() एक मौजूदा फ़ाइल डिस्क्रिप्टर लेता है और इसके चारों ओर एक पायथन फ़ाइल ऑब्जेक्ट बनाता है। यह फ़ाइल डिस्क्रिप्टर को पूर्ण फ़ाइल ऑब्जेक्ट में कनवर्ट करता है। सी कोड या एपीआई के साथ इंटरफेस करते समय यह उपयोगी होता है जो केवल निम्न-स्तरीय फ़ाइल डिस्क्रिप्टर बनाते हैं।

तो ये दोनों फ़ंक्शन पायथन में काम करने के लिए सिस्टम कार्यक्षमता के अधिक करीब प्रदान करते हैं।


  1. C और C++ में क्या अंतर है?

    C और C++ के बीच कुछ अंतर निम्नलिखित हैं। C++ की तुलना में, C, C++ का सबसेट है। सभी मान्य C प्रोग्राम मान्य C++ प्रोग्राम हैं। C एक संरचनात्मक या प्रक्रियात्मक प्रोग्रामिंग भाषा है, जबकि C++ एक ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग भाषा है। सी में, फंक्शंस मौलिक बिल्डिंग ब्लॉक हैं, जबकि सी ++ में, ऑब्जेक्ट

  1. टिंकर (पायथन) में root.destroy () और root.quit () के बीच क्या अंतर है?

    जब हम नष्ट () . का आह्वान करते हैं टिंकर विंडो ऑब्जेक्ट के साथ विधि, यह मेनलूप . को समाप्त करती है विंडो के अंदर सभी विजेट्स को प्रोसेस और नष्ट कर देता है। टिंकर नष्ट करें () विधि मुख्य रूप से पृष्ठभूमि में चल रहे दुभाषिया को मारने और समाप्त करने के लिए उपयोग की जाती है। हालांकि, छोड़ें () mainloop

  1. पायथन में tkinter और tkinter.ttk के विजेट में क्या अंतर है?

    tkinter.ttk एक मॉड्यूल है जिसका उपयोग टिंकर विजेट्स को स्टाइल करने के लिए किया जाता है। जैसे CSS का उपयोग HTML तत्व को स्टाइल करने के लिए किया जाता है, वैसे ही हम tkinter.ttk का उपयोग tkinter विजेट्स को स्टाइल करने के लिए करते हैं। यहां tkinter विजेट और tkinter.ttk . के बीच प्रमुख अंतर दिए गए हैं -