शुरू करेंमुफ़्त में शुरू करें

read-only open() कॉन्टेक्स्ट मैनेजर

आपके अगले डीप लर्निंग प्रोजेक्ट के लिए आपके पास ढेर सारी डेटा फ़ाइलें हैं, जिन्हें इकट्ठा करने और साफ़ करने में आपको महीनों लगे. अगर ट्रेनिंग के लिए पढ़ते समय आप गलती से किसी फ़ाइल पर ओवरराइट कर दें, तो यह बहुत बुरा होगा. इसलिए आप अपने प्रोजेक्ट में इस्तेमाल करने के लिए open() का एक read-only संस्करण बनाना चाहते हैं.

साधारण open() कॉन्टेक्स्ट मैनेजर:

  • एक फ़ाइलनाम और एक मोड लेता है ('r' पढ़ने के लिए, 'w' लिखने के लिए, या 'a' append के लिए)
  • फ़ाइल को पढ़ने, लिखने, या append करने के लिए खोलता है
  • फ़ाइल के रेफ़रेंस के साथ नियंत्रण वापस कॉन्टेक्स्ट को देता है
  • कॉन्टेक्स्ट के ख़त्म होने का इंतज़ार करता है
  • और फिर बाहर निकलने से पहले फ़ाइल बंद कर देता है

आपका कॉन्टेक्स्ट मैनेजर भी यही काम करेगा, बस फर्क यह होगा कि वह आर्ग्यूमेंट के रूप में केवल फ़ाइलनाम लेगा और फ़ाइल को सिर्फ़ पढ़ने के लिए खोलेगा.

यह अभ्यास पाठ्यक्रम का हिस्सा है

Python में Functions लिखना

पाठ्यक्रम देखें

अभ्यास निर्देश

  • open_read_only() से नियंत्रण कॉन्टेक्स्ट ब्लॉक को yield कीजिए, ताकि read_only_file ऑब्जेक्ट my_file को असाइन हो जाए.
  • खुले हुए फ़ाइल हैंडल न छूटें, इसके लिए read_only_file के .close() मेथड का उपयोग कीजिए.

इंटरैक्टिव व्यावहारिक अभ्यास

इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।

@contextlib.contextmanager
def open_read_only(filename):
  """Open a file in read-only mode.

  Args:
    filename (str): The location of the file to read

  Yields:
    file object
  """
  read_only_file = open(filename, mode='r')
  # Yield read_only_file so it can be assigned to my_file
  ____ ____
  # Close read_only_file
  ____.____()

with open_read_only('my_file.txt') as my_file:
  print(my_file.read())
कोड संपादित करें और चलाएँ