نفحص get_filename في zipimport. [1] [2] [3] [4]
الخلاصة السريعة
لا؛ عضو أرشيفنا ليس ملفًا مستقلًا. [1] [2] [3] [4]
- نكتب x.py داخل a.zip. [1] [2] [3] [4]
- يتضمن مسار get_filename الأرشيف والعضو. [1] [2] [3] [4]
- يعطي is_file() للعضو False. [1] [2] [3] [4]
- يطابق get_data البايتات المكتوبة؛ المقارنة True. [1] [2] [3] [4]
- اختبرنا 3.12.14 بمصدر دون ضغط أو استخراج. [1] [2] [3] [4]
- لا نفحص الحزم والبايتكود والتلف. [1] [2] [3] [4]
المثال
import zipfile as z,zipimport as i
from tempfile import TemporaryDirectory
from pathlib import Path
with TemporaryDirectory() as d:
p=Path(d)/'a.zip'
with z.ZipFile(p,'w') as a:
a.writestr('x.py',b'a=1\n')
m=i.zipimporter(str(p))
q=m.get_filename('x')
print(Path(q).is_file())
print(m.get_data(q)==b'a=1\n')المخرجان False ثم True. [1] [2] [3] [4]
أين البيانات؟
المسار يشير إلى عضو داخل أرشيفنا. الأرشيف نفسه ملف؛ قراءة العضو عبر المستورد نجحت دون استخراجه إلى ملف مستقل. [1] [2] [3] [4]

الحدود
عضونا مصدر مخزن دون ضغط. لا نفحص هنا حزمة أو بايتكود أو أرشيفًا تالفًا. [1] [2] [3] [4]
المراجع
- Python: zipimport
- CPython 3.12.14: zipimport.py
- Python: pathlib
- Python: zipfile
- موضوع تك: لغة بايثون — مفردات
- موضوع تك: تطبيقات بايثون — مفردات
أُعدّ هذا المقال بمساعدة الذكاء الاصطناعي، وخضع لمراجعة ذاتية بالأداة نفسها. لا يُنسب إلى مراجع بشري أو خبير مستقل. منهجية المحتوى.
