البلوك with في بايثون

 البلوك with في بايثون

يمكنك الإستفادة من إستخدام أسلوب البلوك with في حال أردت أن يتم إغلاق الملفات التي تفتحها في برامجك بشكل تلقائي و بدون الحاجة لإستدعاء الدالة close().


طريقة تعريف البلوك with :

with expression [as variable]:
    #with-block
  

  • expression: نضع مكانه الأمر الذي سيرجع لنا كائن يشير الملف الذي تم فتحه في الذاكرة.

  • variable: نضع مكانه إسم الكائن الذي نريد من خلاله أن نتعامل مع الملف الذي تم فتحه في الذاكرة.

  • #with-block: مكان هذا التعليق نضع الأوامر التي نريد تنفيذها بعد أن تم فتح الملف بنجاح.



في المثال التالي قمنا بفتح ملف و قراءة النص الموجود فيه بدون الحاجة لإغلاقه عند الإنتهاء منه لأننا وضعنا الكود بداخل بلوك الكلمة with.

مثال على البلوك with

Test.py
# بعدها قمنا بطباعة النص الموجود فيه 'demo.txt' يشير للملف opened_file هنا قمنا بإنشاء كائن إسمه
      with open('demo.txt', 'r') as opened_file:
      print(opened_file.read())

      # هنا قمنا بطباعة ما إن كان الملف لا يزال مفتوحاً في الذاكرة أم أنه تم إغلاقه
      print('Is File Closed:', opened_file.closed)
    

بعد تشغيل الملف Test.py سيتم طباعة كل النص الموجود في الملف demo.txt الذي إفترضنا أننا أنشأناه سابقاً في نفس المشروع الذي نعمل فيه.
نلاحظ أن الدالة closed() أرجعت القيمة True و هذا يعني أنه تم إغلاق الملف من الذاكرة بشكل تلقائي عند إنتهاء البلوك with.

Python is an easy language to learn.
Is File Closed: True
تعليقات