अपने पाइथन प्रोग्राम्स में फ़ाइलों को मज़बूती से संभालने के लिए, किसी भी ऑपरेशन को करने से पहले उनके अस्तित्व की जांच करने का एक विश्वसनीय तरीका आवश्यक है। यह अप्रत्याशित त्रुटियों को रोकता है और आपके कोड की समग्र स्थिरता में सुधार करता है। पाइथन इसे प्राप्त करने के लिए कई तरीके प्रदान करता है, प्रत्येक के अपने फायदे और नुकसान हैं। यह लेख तीन सामान्य और प्रभावी तरीकों का पता लगाता है:
विषयसूची
os.path.isfile()
का उपयोग करनाpathlib.Path.is_file()
का उपयोग करना- फ़ाइल अस्तित्व जाँच के लिए
try...except
से क्यों बचें
os.path.isfile()
का उपयोग करना
os.path.isfile()
फ़ंक्शन, जो सभी पाइथन संस्करणों में उपलब्ध है, यह जांचने का एक सीधा और कुशल तरीका प्रदान करता है कि क्या कोई फ़ाइल मौजूद है और एक नियमित फ़ाइल है (डायरेक्टरी या अन्य विशेष फ़ाइल प्रकार नहीं)। इसकी सादगी और गति के लिए यह आम तौर पर पसंदीदा तरीका है।
import os
def file_exists(filepath):
"""os.path.isfile() का उपयोग करके जांचता है कि क्या कोई फ़ाइल मौजूद है।
Args:
filepath: फ़ाइल का पथ।
Returns:
यदि फ़ाइल मौजूद है और एक नियमित फ़ाइल है, तो True, अन्यथा False।
"""
return os.path.isfile(filepath)
filepath = "my_file.txt"
if file_exists(filepath):
print(f"फ़ाइल '{filepath}' मौजूद है।")
else:
print(f"फ़ाइल '{filepath}' मौजूद नहीं है।")
pathlib.Path.is_file()
का उपयोग करना
पाइथन 3.4 और बाद के संस्करणों के लिए, pathlib
मॉड्यूल एक अधिक आधुनिक और ऑब्जेक्ट-ओरिएंटेड दृष्टिकोण प्रदान करता है। Path.is_file()
विधि एक ही जांच करने का एक स्वच्छ और पठनीय तरीका प्रदान करती है।
from pathlib import Path
def file_exists(filepath):
"""pathlib.Path.is_file() का उपयोग करके जांचता है कि क्या कोई फ़ाइल मौजूद है।
Args:
filepath: फ़ाइल का पथ।
Returns:
यदि फ़ाइल मौजूद है और एक नियमित फ़ाइल है, तो True, अन्यथा False।
"""
return Path(filepath).is_file()
filepath = "my_file.txt"
if file_exists(filepath):
print(f"फ़ाइल '{filepath}' मौजूद है।")
else:
print(f"फ़ाइल '{filepath}' मौजूद नहीं है।")
फ़ाइल अस्तित्व जाँच के लिए try...except
से क्यों बचें
जबकि तकनीकी रूप से FileNotFoundError
की जांच करने के लिए try...except
ब्लॉक का उपयोग करना संभव है, फ़ाइल अस्तित्व जांच के लिए इस दृष्टिकोण को आम तौर पर हतोत्साहित किया जाता है। यह कम कुशल है क्योंकि इसमें फ़ाइल खोलने का प्रयास शामिल है, भले ही आपको केवल यह जानने की आवश्यकता हो कि क्या यह मौजूद है। इसके अलावा, यह अन्य संभावित IOError
अपवादों को मास्क कर सकता है जो फ़ाइल एक्सेस के साथ विभिन्न समस्याओं का संकेत दे सकते हैं, जिससे डिबगिंग अधिक कठिन हो जाती है।
सिफारिश: इसकी व्यापक संगतता और दक्षता के लिए os.path.isfile()
को प्राथमिकता दें, या पाइथन 3.4+ में क्लीनर कोड के लिए pathlib.Path.is_file()
को प्राथमिकता दें।