البلوك with
في بايثون
يمكنك الإستفادة من إستخدام أسلوب البلوك with
في حال أردت أن يتم إغلاق الملفات التي تفتحها في برامجك بشكل تلقائي و بدون الحاجة لإستدعاء الدالة close()
.
طريقة تعريف البلوك with
:
with expression [as variable]: #with-block
expression
: نضع مكانه الأمر الذي سيرجع لنا كائن يشير الملف الذي تم فتحه في الذاكرة.variable
: نضع مكانه إسم الكائن الذي نريد من خلاله أن نتعامل مع الملف الذي تم فتحه في الذاكرة.#with-block
: مكان هذا التعليق نضع الأوامر التي نريد تنفيذها بعد أن تم فتح الملف بنجاح.
في المثال التالي قمنا بفتح ملف و قراءة النص الموجود فيه بدون الحاجة لإغلاقه عند الإنتهاء منه لأننا وضعنا الكود بداخل بلوك الكلمة with
.
مثال على البلوك with
# بعدها قمنا بطباعة النص الموجود فيه '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
.
Is File Closed: True