تقنية

NamedTemporaryFile في بايثون: هل يحذف close الملف هنا؟

الإغلاق قبل الحذف
تفسير توضيحي [1] [2]

تابع وقت اختفاء اسم الملف. [1] [2]

الخلاصة السريعة

لا هنا؛ بقي الملف بعد الإغلاق داخل السياق. [1] [2]

  • أبقينا delete=True الافتراضي؛ ضبطنا delete_on_close=False. [1] [2]
  • بعد f.close() داخل with، وجود المسار: True. [1] [2]
  • بعد الخروج المعتاد من with، وجوده: False. [1] [2]
  • بالافتراضي delete_on_close=True، وجوده بعد الإغلاق داخل السياق: False. [1] [2]
  • فحص ويندوز 3.12.14؛ dir="." مجلدنا القابل للكتابة والحذف. [1] [2]

المثال

أبقينا delete=True الافتراضي؛ ضبطنا delete_on_close=False. [1] [2]

from tempfile import NamedTemporaryFile
from pathlib import Path
with NamedTemporaryFile(dir=".",delete_on_close=False) as f:
    p=Path(f.name)
    f.close()
    print(p.exists())
print(p.exists())

[1] [2]

داخل السياق وبعده

بعد f.close() داخل with، وجود المسار: True. [1] [2]

بعد الخروج المعتاد من with، وجوده: False. [1] [2]

النتيجة: True ثم False. [1] [2]

الوجود داخل السياق وبعده
تفسير توضيحي [1] [2]

التحكم والنطاق

بالافتراضي delete_on_close=True، وجوده بعد الإغلاق داخل السياق: False. [1] [2]

فحص ويندوز 3.12.14؛ dir="." مجلدنا القابل للكتابة والحذف. [1] [2]

dir="." يشير إلى المجلد الحالي؛ الملفات مؤقتة مؤلفة للتجربة. [1] [2]

المراجع

  1. Python 3.12: NamedTemporaryFile
  2. CPython 3.12.14: named file cleanup
  3. موضوع تك: لغة بايثون — مفردات
  4. موضوع تك: تطبيقات بايثون — مفردات

للتوسع: بحث عن لغات البرمجة

أُعدّ هذا المقال بمساعدة الذكاء الاصطناعي، وخضع لمراجعة ذاتية بالأداة نفسها. لا يُنسب إلى مراجع بشري أو خبير مستقل. منهجية المحتوى.