GeezerVisonThe World Wide Web, restored to 800 pixels of glory. | ||||||||||||||
| Home|About|Gaming cabinet|Archives|How it works|Starter sites | ||||||||||||||
GeezerVison is showing python.github.io — zipfile --- کار با بایگانیهای ZIP
|
اندیس |
مقدار |
|---|---|
|
سال (>= ۱۹۸۰) |
|
ماه (یکپایه) |
|
روز ماه (یکمبنا) |
|
ساعتها (بر پایه صفر) |
|
دقیقهها (صفرپایه) |
|
ثانیهها (صفرپایه) |
نکته
قالب ZIP از چندین فیلد برچسب زمانی در مکانهای مختلف (پوشه مرکزی، فیلدهای اضافی برای سیستمهای NTFS/UNIX و غیره) پشتیبانی میکند. این ویژگی بهطور مشخص برچسب زمانی را از پوشه مرکزی برمیگرداند. قالب برچسب زمانی پوشه مرکزی در پروندههای ZIP از برچسبهای زمانی پیش از ۱۹۸۰ پشتیبانی نمیکند. اگرچه برخی قالبهای فیلد اضافی (مانند برچسبهای زمانی UNIX) میتوانند تاریخهای قدیمیتر را نمایش دهند، این ویژگی فقط برچسب زمانی پوشه مرکزی را برمیگرداند.
برچسب زمانی پوشهی مرکزی (central directory) بهعنوان زمان محلی تفسیر میشود، نه زمان UTC، تا با رفتار سایر ابزارهای zip مطابقت داشته باشد.
نوع فشردهسازی برای عضو بایگانی.
دادههای فیلد توسعه (Expansion field). سند PKZIP Application Note شامل برخی کامنتها دربارهی ساختار داخلی دادههای موجود در این شیء bytes است.
سامانهای که بایگانی ZIP را ایجاد کرده است.
نسخهی PKZIP که آرشیو ZIP را ایجاد کرده است.
نسخهی PKZIP موردنیاز برای استخراج بایگانی.
باید صفر باشد.
بیتهای پرچم ZIP.
شمارهی جلد سرآیند پرونده.
ویژگیهای داخلی.
ویژگیهای خارجی پرونده.
آفست بر حسب بایت تا سرآیند پرونده.
CRC-32 پرونده فشردهنشده.
اندازهی دادهی فشرده.
اندازهی پرونده فشردهنشده.
ماژول zipfile یک رابط خط فرمان ساده برای تعامل با بایگانیهای ZIP فراهم میکند.
اگر میخواهید یک بایگانی ZIP جدید ایجاد کنید، نام آن را پس از گزینه -c مشخص کنید و سپس نام پروندههایی را که باید گنجانده شوند فهرست کنید:
$ python -m zipfile -c monty.zip spam.txt eggs.txt
ارسال یک پوشه نیز قابلقبول است:
$ python -m zipfile -c monty.zip life-of-brian_1979/
اگر میخواهید یک آرشیو ZIP را در پوشهی مشخصشده استخراج کنید، از گزینهی -e استفاده کنید:
$ python -m zipfile -e monty.zip target-dir/
برای فهرست پروندههای یک آرشیو ZIP، از گزینه -l استفاده کنید:
$ python -m zipfile -l monty.zip
ایجاد پرونده زیپ از پروندههای منبع.
استخراج در ماژول zipfile ممکن است به دلیل برخی دامهای فهرستشده در زیر با شکست مواجه شود.
ممکن است واگشایی به دلیل گذرواژه / جمعآزما (CRC checksum) / قالب ZIP نادرست یا روش فشردهسازی / رمزگشایی پشتیبانینشده ناموفق باشد.
فراتر رفتن از محدودیتها در سیستمهای پرونده مختلف میتواند باعث شکست در واگشایی شود؛ برای نمونه، نویسههای مجاز در ورودیهای پوشه، طول نام پرونده، طول مسیر، اندازهی یک پرونده، و تعداد پروندهها و غیره.
کمبود حافظه یا حجم دیسک منجر به شکست در واگشایی میشود. برای مثال، بمبهای واگشایی (معروف به ZIP bomb) میتوانند در مورد کتابخانهی zipfile صدق کنند و باعث اتمام حجم دیسک شوند.
وقفه در حین واگشایی، مانند فشار دادن control-C یا کشتن فرایند واگشایی، ممکن است منجر به واگشایی ناقص آرشیو شود.
ندانستن رفتارهای پیشفرض استخراج میتواند باعث نتایج غیرمنتظرهی واگشایی شود. برای مثال، هنگامی که یک بایگانی را دو بار استخراج میکنید، پروندهها بدون پرسش بازنویسی میشوند.