التابع ZipFile.write()
في بايثون
يضيف التابع الملف المعطى إلى ملف الأرشيف.
البنية العامة
ZipFile.write(filename, arcname=None, compress_type=None, compresslevel=None)
المعاملات
filename
اسم الملف المراد إضافته إلى الأرشيف.
arcname
الاسم الذي يعطيه التابع للملف المضاف إلى الأرشيف.
القيمة الافتراضية لهذا المعامل هي نفس قيمة المعامل filename ولكن مع حذف اسم محرّك الأقراص والفواصل الموجودة في بداية المسار
compress_type
معامل اختياري تعيد قيمته تعريف القيمة المحدّدة للمعامل compression في الدالة البانية لكائنات ZipFile.
compresslevel
معامل اختياري تعيد قيمته تعريف القيمة المقابلة لها في الدالة البانية.
ملاحظات:
- يجب فتح الأرشيف بوضع 'w' أو 'x' أو 'a'.
- لا تدعم ملّفات ZIP ترميزًا معيًنا؛ لذا إن كانت ملفّاتك مرمّزة بالترميز الموحد unicode يجب عليك تحويل أسماء الملفات إلى سلاسل بايتات نصية بالترميز المطلوب قبل تمرير الملفات إلى التابع write(). يفسّر برنامج WinZip أسماء الملفات كلّها على أنّها مرمّزة بالترميز CP437 والمعروف أيضًا بالترميز DOS Latin.
- يجب أن تكن أسماء الملفات في الأرشيف نسبية إلى جذر الأرشيف، بمعنى أنّه يجب أن لا تبدأ أسماء الملفات بفاصل المسار.
- إن احتوت قيمة المعامل arcname (أو المعامل filename إن كان arcname غير متوفّر) على بايتات من نوع null، فسيجري اقتطاع اسم الملف في الأرشيف عند البايت من نوع null.
- يؤدي استدعاء التابع testzip() على كائن ZipFile مغلق إلى إطلاق الاستثناء ValueError في الإصدار 3.6 من بايثون. كان التابع يطلق الاستثناء RuntimeError في الإصدارات السابقة.
القيمة المعادة
يعيد التابع القمية None
.
أمثلة
يبين المثال التالي طريقة إضافة ملف إلى الأرشيف:
>>> import zipfile
>>> zip = zipfile.ZipFile('files.zip')
>>> zip.printdir()
File Name Modified Size
file1.txt 2018-11-16 10:33:06 12
file2.html 2018-11-16 10:41:28 0
file3.py 2018-11-14 21:24:14 0
>>> zip.close()
>>> zip = zipfile.ZipFile('files.zip', 'a')
>>> zip.write('file4.css')
>>> zip.printdir()
File Name Modified Size
file1.txt 2018-11-16 10:33:06 12
file2.html 2018-11-16 10:41:28 0
file3.py 2018-11-14 21:24:14 0
file4.css 2018-11-14 22:41:49 0
انظر أيضًا
- التابع
ZipFile.writestr()
: يكتب التابع البيانات النصية المعطاة في الأرشيف.