फाइलें और अपवाद (Files and Exceptions)

फाइलें और अपवाद (Files and Exceptions)

इस अध्याय में, हम पाइथन में फाइलों के साथ काम करने और अपवादों को संभालने के बारे में जानेंगे। फाइलें डेटा को स्थायी रूप से संग्रहीत करने का एक तरीका प्रदान करती हैं, जबकि अपवाद हैंडलिंग कोड में उत्पन्न होने वाली त्रुटियों का प्रबंधन करने का एक तरीका है। इस अध्याय में, हम फाइलें पढ़ने और लिखने, अपवादों को समझने और संभालने के बारे में विस्तार से जानेंगे।

फाइलें पढ़ना और लिखना (Reading and Writing Files)

फाइलें खोलना (Opening Files)

फाइल के साथ काम करने का पहला कदम उसे खोलना होता है। आप open() फ़ंक्शन का उपयोग करके फाइल खोल सकते हैं। यह फ़ंक्शन दो आर्गुमेंट्स लेता है: फाइल का नाम और मोड (कैसे फाइल को खोलना है)।

उदाहरण (Example)

file = open("example.txt", "r")  # फाइल को पढ़ने के मोड में खोलें

फाइलें पढ़ना (Reading Files)

फाइल को पढ़ने के लिए विभिन्न तरीके हैं, जैसे read(), readline(), और readlines()

उदाहरण (Examples)

  1. पूरी फाइल पढ़ना (Reading the Entire File)
    file = open("example.txt", "r")
    content = file.read()
    print(content)
    file.close()
    

     

  2. लाइन-बाय-लाइन पढ़ना (Reading Line by Line)
    file = open("example.txt", "r")
    for line in file:
        print(line, end="")
    file.close()
    

     

  3. readline() का उपयोग करके (Using readline())
    file = open("example.txt", "r")
    line = file.readline()
    while line:
        print(line, end="")
        line = file.readline()
    file.close()
    

     

  4. readlines() का उपयोग करके (Using readlines())
    file = open("example.txt", "r")
    lines = file.readlines()
    for line in lines:
        print(line, end="")
    file.close()
    

     

फाइलें लिखना (Writing Files)

फाइल में लिखने के लिए write() और writelines() विधियों का उपयोग किया जाता है। फाइल को लिखने के लिए “w” या “a” मोड में खोलना होता है।

उदाहरण (Examples)

  1. write() का उपयोग करके (Using write())
    file = open("example.txt", "w")
    file.write("नमस्ते, दुनिया!\n")
    file.write("यह एक परीक्षण है।\n")
    file.close()
    

     

  2. writelines() का उपयोग करके (Using writelines())
    lines = ["नमस्ते, दुनिया!\n", "यह एक परीक्षण है।\n"]
    file = open("example.txt", "w")
    file.writelines(lines)
    file.close()
    

     

फाइलें बंद करना (Closing Files)

फाइल को बंद करना महत्वपूर्ण है, ताकि फाइल सिस्टम के संसाधन मुक्त हो सकें। आप close() विधि का उपयोग करके फाइल को बंद कर सकते हैं।

उदाहरण (Example)

file = open("example.txt", "r")
# फाइल के साथ कुछ ऑपरेशन
file.close()

फाइल मोड्स (File Modes)

फाइल खोलते समय विभिन्न मोड्स का उपयोग किया जा सकता है:

  • "r": पढ़ने के लिए
  • "w": लिखने के लिए (यदि फाइल मौजूद है, तो उसे हटाकर नई फाइल बनाई जाएगी)
  • "a": जोड़ने के लिए (फाइल के अंत में डेटा जोड़ना)
  • "b": बाइनरी मोड में (जैसे "rb", "wb")

फाइलें और with स्टेटमेंट (Files and the with Statement)

with स्टेटमेंट का उपयोग करके फाइल को ऑटोमैटिकली बंद किया जा सकता है। इससे फाइल को मैन्युअली बंद करने की आवश्यकता नहीं होती।

उदाहरण (Example)

with open("example.txt", "r") as file:
    content = file.read()
    print(content)
# फाइल ऑटोमैटिकली बंद हो जाती है

अपवाद हैंडलिंग (Exception Handling)

अपवाद क्या है? (What is an Exception?)

अपवाद (Exception) प्रोग्राम के निष्पादन के दौरान उत्पन्न होने वाली त्रुटियां होती हैं। जब कोई अपवाद उत्पन्न होता है, तो प्रोग्राम का सामान्य प्रवाह बाधित हो जाता है और प्रोग्राम बंद हो सकता है। अपवाद हैंडलिंग का उपयोग त्रुटियों का प्रबंधन करने के लिए किया जाता है ताकि प्रोग्राम त्रुटियों के बावजूद सही तरीके से काम कर सके।

try और except ब्लॉक (try and except Blocks)

आप try और except ब्लॉक का उपयोग करके अपवादों को पकड़ सकते हैं और उन्हें संभाल सकते हैं।

उदाहरण (Example)

try:
    result = 10 / 0
except ZeroDivisionError:
    print("शून्य से विभाजन की त्रुटि!")

मल्टीपल अपवाद (Multiple Exceptions)

आप कई अपवादों को एक ही try ब्लॉक में संभाल सकते हैं।

उदाहरण (Example)

try:
    file = open("example.txt", "r")
    content = file.read()
except FileNotFoundError:
    print("फाइल नहीं मिली!")
except IOError:
    print("इनपुट/आउटपुट त्रुटि!")
finally:
    if 'file' in locals():
        file.close()

finally ब्लॉक (finally Block)

finally ब्लॉक का उपयोग उन कोड को निष्पादित करने के लिए किया जाता है जो हमेशा चलने चाहिए, चाहे कोई अपवाद उत्पन्न हो या नहीं।

उदाहरण (Example)

try:
    file = open("example.txt", "r")
    content = file.read()
except FileNotFoundError:
    print("फाइल नहीं मिली!")
finally:
    print("यह कोड हमेशा चलेगा।")
    if 'file' in locals():
        file.close()

उपयोगकर्ता-परिभाषित अपवाद (User-Defined Exceptions)

आप अपने खुद के अपवाद परिभाषित कर सकते हैं। इसके लिए एक नई अपवाद कक्षा (class) बनाई जाती है जो Exception कक्षा से विरासत में मिलती है।

उदाहरण (Example)

class MyCustomError(Exception):
    pass

try:
    raise MyCustomError("यह एक उपयोगकर्ता-परिभाषित अपवाद है!")
except MyCustomError as e:
    print(e)

फाइलें और अपवाद के उदाहरण (Examples with Files and Exceptions)

इस सेक्शन में, हम फाइलें और अपवाद हैंडलिंग के कुछ उपयोगी उदाहरण देखेंगे।

  1. फाइल पढ़ना और अपवाद संभालना (Reading a File and Handling Exceptions)
    try:
        with open("example.txt", "r") as file:
            content = file.read()
            print(content)
    except FileNotFoundError:
        print("फाइल नहीं मिली!")
    except IOError:
        print("इनपुट/आउटपुट त्रुटि!")
    

     

  2. फाइल लिखना और अपवाद संभालना (Writing to a File and Handling Exceptions)
    try:
        with open("example.txt", "w") as file:
            file.write("नमस्ते, दुनिया!")
       except IOError:
           print("इनपुट/आउटपुट त्रुटि!")
       finally:
           print("फाइल लिखने की प्रक्रिया समाप्त।")
    

     

  3. मल्टीपल अपवाद संभालना (Handling Multiple Exceptions)
    try:
        with open("example.txt", "r") as file:
            content = file.read()
            result = int(content)
            print(result)
    except FileNotFoundError:
        print("फाइल नहीं मिली!")
    except ValueError:
        print("फाइल का कंटेंट एक संख्या में परिवर्तित नहीं किया जा सकता!")
    except Exception as e:
        print(f"अन्य त्रुटि: {e}")
    

     

  4. उपयोगकर्ता-परिभाषित अपवाद का उपयोग (Using User-Defined Exceptions)
    class NegativeNumberError(Exception):
        pass
    
    def check_positive(number):
        if number < 0:
            raise NegativeNumberError("नकारात्मक संख्या की अनुमति नहीं है!")
    
    try:
        check_positive(-10)
    except NegativeNumberError as e:
        print(e)
    

     

फाइलें और अपवाद के लिए उपयोगी टिप्स (Useful Tips for Files and Exceptions)

  1. फाइल बंद करना न भूलें (Don’t Forget to Close the File): फाइल को मैन्युअली बंद करने के बजाय with स्टेटमेंट का उपयोग करें, जिससे फाइल ऑटोमैटिकली बंद हो जाए।
  2. सही फाइल मोड का उपयोग करें (Use the Correct File Mode): फाइल खोलते समय सही मोड का चयन करें ("r" पढ़ने के लिए, "w" लिखने के लिए, "a" जोड़ने के लिए, आदि)।
  3. अपवादों को हैंडल करें (Handle Exceptions): अपने कोड में अपवादों को सही ढंग से हैंडल करें ताकि प्रोग्राम त्रुटियों के बावजूद भी सही तरीके से काम कर सके।
  4. स्पष्ट और वर्णनात्मक अपवाद संदेश (Clear and Descriptive Exception Messages): अपवाद संदेशों को स्पष्ट और वर्णनात्मक बनाएं ताकि त्रुटियों का निदान और समाधान करना आसान हो।
  5. फ़ाइलों को सुरक्षित रखें (Keep Files Secure): संवेदनशील डेटा को फाइलों में संग्रहीत करते समय सुरक्षा का ध्यान रखें और आवश्यकतानुसार एन्क्रिप्शन का उपयोग करें।
  6. प्रयास करें और त्रुटियों से सीखें (Try and Learn from Errors): कोड में अपवादों को हैंडल करने के साथ-साथ, त्रुटियों से सीखने का प्रयास करें और अपने कोड को बेहतर बनाने के लिए उन पर काम करें।


Index