الفرق بين المراجعتين لصفحة: «Python/ZipFile/write»
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE:التابع <code>ZipFile.write()</code> في بايثون}}</noinclude> يضيف التابع الملف المعطى إلى ملف ا...' |
|||
سطر 7: | سطر 7: | ||
ZipFile.write(filename, arcname=None, compress_type=None, compresslevel=None) | ZipFile.write(filename, arcname=None, compress_type=None, compresslevel=None) | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== المعاملات == | |||
=== <code>filename</code> === | |||
اسم الملف المراد إضافته إلى الأرشيف. | اسم الملف المراد إضافته إلى الأرشيف. | ||
=== arcname === | === <code>arcname</code> === | ||
الاسم الذي يعطيه التابع للملف المضاف إلى الأرشيف. | الاسم الذي يعطيه التابع للملف المضاف إلى الأرشيف. | ||
القيمة الافتراضية لهذا المعامل هي نفس قيمة المعامل filename ولكن مع حذف اسم محرّك الأقراص والفواصل الموجودة في بداية المسار | القيمة الافتراضية لهذا المعامل هي نفس قيمة المعامل <code>filename</code> ولكن مع حذف اسم محرّك الأقراص والفواصل الموجودة في بداية المسار | ||
=== compress_type === | === <code>compress_type</code> === | ||
معامل اختياري تعيد قيمته تعريف القيمة المحدّدة للمعامل compression في الدالة البانية لكائنات ZipFile. | معامل اختياري تعيد قيمته تعريف القيمة المحدّدة للمعامل <code>compression</code> في الدالة البانية لكائنات <code>[[Python/ZipFile|ZipFile]]</code>. | ||
=== compresslevel === | === <code>compresslevel</code> === | ||
معامل اختياري تعيد قيمته تعريف القيمة المقابلة لها في الدالة البانية. | معامل اختياري تعيد قيمته تعريف القيمة المقابلة لها في الدالة البانية. | ||
'''ملاحظات:''' | '''ملاحظات:''' | ||
* يجب فتح الأرشيف بوضع 'w' أو 'x' أو 'a'. | * يجب فتح الأرشيف بوضع <code>'w'</code> أو <code>'x'</code> أو <code>'a'</code>. | ||
* لا تدعم ملّفات ZIP ترميزًا معيًنا؛ لذا إن كانت ملفّاتك مرمّزة بالترميز الموحد unicode يجب عليك تحويل أسماء الملفات إلى سلاسل بايتات نصية بالترميز المطلوب قبل تمرير الملفات إلى التابع write(). يفسّر برنامج WinZip أسماء الملفات كلّها على أنّها مرمّزة بالترميز CP437 والمعروف أيضًا بالترميز DOS Latin. | * لا تدعم ملّفات ZIP ترميزًا معيًنا؛ لذا إن كانت ملفّاتك مرمّزة بالترميز الموحد unicode يجب عليك تحويل أسماء الملفات إلى سلاسل بايتات نصية بالترميز المطلوب قبل تمرير الملفات إلى التابع <code>write()</code>. يفسّر برنامج WinZip أسماء الملفات كلّها على أنّها مرمّزة بالترميز CP437 والمعروف أيضًا بالترميز DOS Latin. | ||
* يجب أن تكن أسماء الملفات في الأرشيف نسبية إلى جذر الأرشيف، بمعنى أنّه يجب أن لا تبدأ أسماء الملفات بفاصل المسار. | * يجب أن تكن أسماء الملفات في الأرشيف نسبية إلى جذر الأرشيف، بمعنى أنّه يجب أن لا تبدأ أسماء الملفات بفاصل المسار. | ||
* إن احتوت قيمة المعامل arcname (أو المعامل filename إن كان arcname غير متوفّر) على بايتات من نوع | * إن احتوت قيمة المعامل <code>arcname</code> (أو المعامل <code>filename</code> إن كان <code>arcname</code> غير متوفّر) على بايتات من نوع <code>null</code>، فسيجري اقتطاع اسم الملف في الأرشيف عند البايت من نوع <code>null</code>. | ||
* يؤدي استدعاء التابع testzip() على كائن ZipFile مغلق إلى إطلاق الاستثناء ValueError في الإصدار 3.6 من بايثون. كان التابع يطلق الاستثناء RuntimeError في الإصدارات السابقة. | * يؤدي استدعاء التابع <code>testzip()</code> على كائن <code>[[Python/ZipFile|ZipFile]]</code> مغلق إلى إطلاق الاستثناء <code>ValueError</code> في الإصدار 3.6 من بايثون. كان التابع يطلق الاستثناء <code>RuntimeError</code> في الإصدارات السابقة. | ||
== القيمة المعادة == | == القيمة المعادة == | ||
سطر 40: | سطر 39: | ||
<syntaxhighlight lang="python3"> | <syntaxhighlight lang="python3"> | ||
>>> import zipfile | >>> import zipfile | ||
>>> zip = zipfile.ZipFile('files.zip') | >>> zip = zipfile.ZipFile('files.zip') # فتح ملف الأرشيف في وضع القراءة | ||
>>> zip.printdir() | >>> zip.printdir() # عرض قائمة بالملفات الموجودة في الأرشيف | ||
File Name Modified Size | File Name Modified Size | ||
file1.txt 2018-11-16 10:33:06 12 | file1.txt 2018-11-16 10:33:06 12 | ||
سطر 47: | سطر 46: | ||
file3.py 2018-11-14 21:24:14 0 | file3.py 2018-11-14 21:24:14 0 | ||
>>> zip.close() | >>> zip.close() | ||
>>> zip = zipfile.ZipFile('files.zip', 'a') | >>> zip = zipfile.ZipFile('files.zip', 'a') # فتح ملف الأرشيف في وضع الإلحاق | ||
>>> zip.write('file4.css') | >>> zip.write('file4.css') # إضافة ملف إلى الأرشيف | ||
>>> zip.printdir() | >>> zip.printdir() # عرض قائمة بالملفات الموجودة في الأرشيف ويظهر فيها الملف المضاف | ||
File Name Modified Size | File Name Modified Size | ||
file1.txt 2018-11-16 10:33:06 12 | file1.txt 2018-11-16 10:33:06 12 |
المراجعة الحالية بتاريخ 08:41، 16 نوفمبر 2018
يضيف التابع الملف المعطى إلى ملف الأرشيف.
البنية العامة
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()
: يكتب التابع البيانات النصية المعطاة في الأرشيف.