किसी फ़ाइल को कैसे जांचें कि पायथन में खोला या बंद किया गया है

How Check File Is Opened

फ़ाइल का उपयोग डेटा को स्थायी रूप से संग्रहीत करने के लिए किया जाता है। फ़ाइल के साथ कार्य करना किसी भी प्रोग्रामिंग भाषा का एक बहुत ही सामान्य कार्य है। फ़ाइल बनाने, खोलने, पढ़ने, लिखने और बंद करने के लिए पायथन में कई अंतर्निहित कार्य मौजूद हैं। डाटा स्टोर करने के लिए दो तरह की फाइल बनाई जा सकती है। ये टेक्स्ट फाइलें और बाइनरी फाइलें हैं। किसी भी फाइल को पढ़ने या लिखने से पहले खोलना आवश्यक है। NS खोलना() फ़ाइल खोलने के लिए पायथन में फ़ंक्शन का उपयोग किया जाता है। का उपयोग करते हुए खोलना() फ़ंक्शन किसी विशेष फ़ाइल को खोलने या बंद करने की जाँच करने का एक तरीका है। अगर खोलना() फ़ंक्शन पहले खोली गई फ़ाइल को खोलता है, फिर an आईओत्रुटि उत्पन्न किया जाएगा। किसी फ़ाइल को खोलने या बंद करने की जाँच करने का दूसरा तरीका है के मानों की जाँच करना बंद किया हुआ फ़ाइल हैंडलर ऑब्जेक्ट की संपत्ति। का उपयोग करते हुए नाम बदलें () फ़ंक्शन फ़ाइल को खोलने या बंद करने की जाँच करने का एक और तरीका है। पायथन में किसी भी फाइल को खोलने या बंद करने की जांच करने के विभिन्न तरीके इस ट्यूटोरियल में दिखाए गए हैं।

जाँच के लिए एक फ़ाइल बनाएँ:

आप इस ट्यूटोरियल में दिखाए गए उदाहरण कोड का परीक्षण करने के लिए किसी भी मौजूदा फ़ाइल का उपयोग कर सकते हैं या एक नई फ़ाइल बना सकते हैं। नाम की एक नई टेक्स्ट फ़ाइल क्लाइंट्स.txt ट्यूटोरियल के अगले भाग में बाद में उपयोग करने के लिए निम्नलिखित सामग्री के साथ बनाया गया है।







आईडी नाम ईमेल
01 जॉनी लीवर [ईमेल संरक्षित]
02 माणिक हुसैन [ईमेल संरक्षित]
03 नेहा अख्तर [ईमेल संरक्षित]
04 जनतुल फिरदौस [ईमेल संरक्षित]
05 हलाल उद्दीन [ईमेल संरक्षित]



उदाहरण -1: IOError का उपयोग करके जांचें कि फ़ाइल खोली गई है या नहीं

आईओत्रुटि उत्पन्न होता है जब ओपन () फ़ंक्शन को पहले खोली गई फ़ाइल को खोलने के लिए कहा जाता है। निम्न स्क्रिप्ट के साथ एक पायथन फ़ाइल बनाएं ताकि यह जांचा जा सके कि फ़ाइल खोली गई है या नहीं कोशिश-सिवाय खंड मैथा। यहां, किसी भी मौजूदा फ़ाइल नाम को इनपुट के रूप में लिया जाएगा और पढ़ने के लिए खोला जाएगा। इसके बाद, ओपन () फ़ंक्शन को उसी फ़ाइल को खोलने के लिए फिर से कॉल किया जाता है जो IOError उठाएगा और त्रुटि संदेश प्रिंट करेगा।



# फाइल का नाम चेक करने के लिए लें
फ़ाइल नाम = इनपुट('कोई भी मौजूदा फ़ाइल नाम दर्ज करें:एन')
# ओपन () फ़ंक्शन का उपयोग करके पहली बार फ़ाइल खोलें
फ़ाइलहैंडलर = खुला(फ़ाइल का नाम,'आर')
# फ़ाइल को उसी फ़ाइल को फिर से खोलने का प्रयास करें
प्रयत्न:
खुले के साथ('फ़ाइल का नाम','आर') जैसाफ़ाइल:
# सफलता संदेश प्रिंट करें
प्रिंट('फाइल पढ़ने के लिए खोली गई है।')
# यदि फ़ाइल पहले खोली गई है तो त्रुटि उठाएँ
IOError को छोड़कर:
प्रिंट('फाइल पहले ही खुल चुकी है।')

आउटपुट:

उपरोक्त स्क्रिप्ट को निष्पादित करने के बाद निम्न आउटपुट दिखाई देगा। यहां, क्लाइंट्स.txt वर्तमान स्थान में मौजूद है, और त्रुटि संदेश, फ़ाइल पहले ही खुल चुकी है, के लिए मुद्रित किया गया है आईओत्रुटि अपवाद।





उदाहरण -2: बंद संपत्ति का उपयोग करके जांचें कि फ़ाइल बंद है या नहीं।

का मूल्य बंद किया हुआ यदि कोई फ़ाइल बंद है तो संपत्ति सत्य होगी। फ़ाइल बंद है या नहीं जो वर्तमान स्थान में मौजूद है, यह जांचने के लिए निम्न स्क्रिप्ट के साथ एक पायथन फ़ाइल बनाएं। यदि उपयोगकर्ता से लिया गया फ़ाइल नाम वर्तमान स्थान पर मौजूद नहीं है, तो पिछली उदाहरण स्क्रिप्ट एक त्रुटि उत्पन्न करेगी। इस उदाहरण में यह समस्या हल हो गई है। NS आप मॉड्यूल का उपयोग यहां फ़ाइल नाम के अस्तित्व की जांच करने के लिए किया जाता है जो उपयोगकर्ता से लिया जाएगा। चेक_क्लोज्ड () फ़ंक्शन ने यह जांचने के लिए परिभाषित किया है कि फ़ाइल बंद है या नहीं, यदि फ़ाइल मौजूद है तो उसे कॉल किया जाएगा।



# फ़ाइल के अस्तित्व की जांच करने के लिए ओएस मॉड्यूल आयात करें
आयात
# Drfine फ़ंक्शन जांचें कि फ़ाइल बंद है या नहीं
डीईएफ़ चेक_बंद():
अगरfileHandler.बंद == गलत:
# सफलता संदेश प्रिंट करें
प्रिंट('फाइल पढ़ने के लिए खोली गई है।')
अन्यथा:
# त्रुटि संदेश प्रिंट करें
प्रिंट('फाइल बंद हो गई है।')

# फाइल का नाम चेक करने के लिए लें
फ़ाइल नाम = इनपुट('कोई भी मौजूदा फ़ाइल नाम दर्ज करें:एन')
# जाँच करें कि फ़ाइल मौजूद है या नहीं
अगरos.path.exist(फ़ाइल का नाम):
# पढ़ने के लिए फाइल खोलें
फ़ाइलहैंडलर = खुला(फ़ाइल का नाम,'आर')
# फ़ंक्शन को कॉल करें
चेक_बंद()
अन्यथा:
# यदि फ़ाइल मौजूद नहीं है तो संदेश प्रिंट करें
प्रिंट('फ़ाइल मौजूद नहीं है।')

आउटपुट:

उपरोक्त स्क्रिप्ट को निष्पादित करने के बाद निम्न आउटपुट दिखाई देगा। यहां, क्लाइंट्स.txt वर्तमान स्थान में मौजूद है, और सफलता संदेश, फ़ाइल पढ़ने के लिए खोली गई है, मुद्रित किया गया है क्योंकि बंद संपत्ति का मूल्य वापस आ गया है झूठा .

उदाहरण -3: OSError का उपयोग करके जांचें कि फ़ाइल खोली गई है या नहीं

NS ओएसत्रुटि तब उत्पन्न होता है जब नाम बदलें () फ़ंक्शन को पहले से खोली गई फ़ाइल के लिए एक से अधिक बार कॉल किया जाता है। फ़ाइल को खोलने या बंद करने की जाँच करने के लिए निम्न स्क्रिप्ट के साथ एक पायथन फ़ाइल बनाएँ ओएसत्रुटि . फ़ाइल के अस्तित्व की जाँच करने और फ़ाइल का नाम बदलने के लिए os मॉड्यूल का उपयोग स्क्रिप्ट में किया गया है। जब नाम बदलें () फ़ंक्शन को दूसरी बार कॉल किया जाता है, OSError उत्पन्न होगा, और कस्टम त्रुटि संदेश मुद्रित किया जाएगा।

# फ़ाइल के अस्तित्व की जांच करने के लिए ओएस मॉड्यूल आयात करें
आयात
# मौजूदा फ़ाइल नाम सेट करें
फ़ाइल नाम ='clients.txt'
# नया फ़ाइल नाम सेट करें
नया नाम ='customers.txt'
# जाँच करें कि फ़ाइल मौजूद है या नहीं
अगरos.path.exist(फ़ाइल का नाम):
प्रयत्न:
# पहली बार नाम बदलें फ़ंक्शन को कॉल करें
ओएस का नाम बदलें(फ़ाइल नाम, नया नाम)
# दूसरी बार नाम बदलें फ़ंक्शन को कॉल करें
ओएस का नाम बदलें(फ़ाइल नाम, नया नाम)
# फ़ाइल खुलने पर त्रुटि उठाएँ
OSError को छोड़कर:
प्रिंट('फाइल अभी भी खुली है।')

अन्यथा:
# यदि फ़ाइल मौजूद नहीं है तो संदेश प्रिंट करें
प्रिंट('फ़ाइल मौजूद नहीं है।')

आउटपुट:

उपरोक्त स्क्रिप्ट को निष्पादित करने के बाद निम्न आउटपुट दिखाई देगा। यहां, क्लाइंट्स.txt वर्तमान स्थान में मौजूद है, और त्रुटि संदेश, फ़ाइल अभी भी खुली है, मुद्रित किया है क्योंकि ओएसत्रुटि अपवाद उत्पन्न हुआ है जब दूसरा नाम बदलें () समारोह निष्पादित किया गया है।

निष्कर्ष:

जब हमें एक ही फ़ाइल के साथ एक स्क्रिप्ट में कई बार काम करने की आवश्यकता होती है, तो यह जानना आवश्यक है कि फ़ाइल खुली है या बंद है। फ़ाइल ऑपरेशन पूरा करने के बाद फ़ाइल को बंद करने के लिए क्लोज़ () फ़ंक्शन को कॉल करना बेहतर है। त्रुटि तब होती है जब कोई फ़ाइल दूसरी बार उसी स्क्रिप्ट में बिना बंद किए खोली जाती है। इस ट्यूटोरियल में इस समस्या के विभिन्न समाधान पायथन उपयोगकर्ताओं की सहायता के लिए सरल उदाहरणों का उपयोग करके दिखाए गए हैं।