تقنية

مجلد ZIP في بايثون: هل يحتاج إدخالًا صريحًا؟

عضو ZIP دون إدخال المجلد
تفسير توضيحي [1] [2]

مجلد ZIP في بايثون قد يظهر ضمنيًا في Path هنا. [1] [2]

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

لا؛ عضو متداخل واحد يكفي لإظهار أبيه في واجهة المسار. [1] [2]

  • نخزن canopy/bud.dat وحده. [1] [2]
  • القائمة الأصلية لا تضم canopy/. [1] [2]
  • Path للمجلد يعطي exists=True. [1] [2]
  • ويعطي is_dir=True. [1] [2]
  • القائمة قبل Path؛ نوع الأرشيف يتغير. [1] [2]
  • 3.12.14؛ ذاكرة فقط، بلا استخراج. [1] [2]

المثال

from io import BytesIO
from zipfile import ZipFile,ZipInfo,Path
buf=BytesIO()
info=ZipInfo("canopy/bud.dat")
with ZipFile(buf,"w") as z:z.writestr(info,b"leaf")
with ZipFile(buf) as z:
 names=z.namelist()
 print("canopy/" in names)
 p=Path(z,"canopy/")
 print(p.exists(),p.is_dir())

[1] [2]

عضو أم مجلد ضمني؟

النتيجة: False ثم True True. الأرشيف يضم الملف؛ واجهة Path تضيف معرفة بالمجلد الضمني. [1] [2]

وجود المجلد الضمني
تفسير توضيحي [1] [2]

تحكم وحدود

twig/ الغائب: exists=False وis_dir=True. التصنيف لا يثبت الوجود. Path يغير نوع الأرشيف. ذاكرة بلا CRC أو استخراج. [1] [2]

المراجع

  1. Python 3.12: ZIP path context
  2. CPython 3.12.14: implied directories
  3. موضوع تك: لغة بايثون — مفردات
  4. موضوع تك: تطبيقات بايثون — مفردات

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

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