التابع 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()
: يكتب التابع البيانات النصية المعطاة في الأرشيف.