فایل های zip در پایتون

کار با فایل های zip در پایتون

2 ديدگاه

 

فایل های zip در پایتون

سلام و عرض ادب خدمت کاربران سایت پایتونز، در این مطلب می خواهیم درباره فایل های zip در پایتون صحبت کنیم لطفا با ما همراه باشید.

اینبار قصد داریم نحوه کار با فایل های zip رو در پایتون به شما آموزش بدیم؛  اینکه چطور یک فایل zip بسازیم و فایل های خودمون رو داخلش قرار بدیم، یا ویرایش بدیم و فایل های بیشتری رو به zip اضافه کنیم یا اینکه فایل های داخلش رو استخراج کنیم.

برای کار با فایل های zip ما از کتابخونه zipfile استفاده میکنیم که برای نصب این کتابخونه میتونید وارد کامند لاین سیستم بشید و با دستور pip install zipfile  کتابخونه رو نصب کنید

 

pip install zipfile

سپس یک فایل با پسوند .py بسازید کنید بنده فایل main.py رو ایجاد کردم

حالا با دستور زیر کلاس ZipFile رو از کتابخونه zipfile ایمپورت میکنیم.

به بزرگی یا کوچکی حروف دقت کنید.

 

from zipfile import ZipFile

ساخت فایل zip

خب بعد از import کردن کتابخونه در اولین قدم قصد داریم یک فایل zip بسازیم.

برای ایجاد فایل زیپ کافیه طبق تصویر زیر نام فایل zip رو به همراه mode مورد نظر به کلاس ZipFile بدید و اون رو داخل یک متغیر بریزید.

دقت کنید برای ایجاد یک فایل zip جدید باید mode رو  روی حالت w قرار بدید.  منظور از w همون write هست.

 

z = ZipFile( 'file.zip' , 'w' )

بنده نام فایل رو file.zip انتخاب کردم و mode هم روی حالت w گذاشتم.

با این کار فایل zip ما ساخته میشه اما هنوز کار تموم نشده، برای اتمام عملیات باید طبق تصویر زیر تابع close()  رو فراخوانی کنید.

 

z = ZipFile( 'file.zip' , 'w' )

z.close()

خب حالا با اجرای برنامه فایل zip ما ساخته میشه.

فایل های zip در پایتون

اما اگه فایل zip رو باز کنیم کاملا خالیه و هیچ فایلی داخلش وجود نداره

برای اضافه کردن فایل های دیگه به فایل zip کافیه قبل از close() کردن عملیات write() رو طبق تصویر زیر به کد ها اضافه کنید و اسم یا آدرس فایلی که میخواید به zip اضافه بشه رو به تابع write() بدید.

 

from zipfile import ZipFile

z = ZipFile( 'file.zip' , 'w' )

z.write('image.png')

z.close()

با هر بار صدا زدن تابع write() میتونید فایل های بیشتری اضافه کنید.

بنده فایل image.png رو که در دسکتاپ داشتم اضافه کردم و بعد از اجرای برنامه میتونیم ببینیم که فایل image.png درون فایل zip قرار گرفته.

ویرایش فایل های zip

خب تا اینجا نحوۀ ساخت فایل zip رو گفتیم اما اگه یک فایل zip از قبل داشته باشیم و بخوایم فایل های بیشتری اضافه کنیم باید چیکار کنیم؟

اگر که فایل zip رو روی حالت w باز کنیم (یعنی mode رو w قرار بدیم) ، فایل جدیدی ساخته میشه و اطلاعات فایل قبلی پاک میشه؛ اما برای جلوگیری از این اتفاق میتونیم mode رو طبق تصویر زیر روی حالت a قرار بدیم.

 

z = ZipFile( 'main.zip' , 'a' )

خب بنده به وسیله نرم افزار WinRar یک فایل zip ایجاد کردم و فایل image.png رو داخلش قرار دادم و اسم فایل هم main.zip گذاشتم.

حالا قصد دارم فایل رو روی حالت a باز کنم و فایل main.py که در دسکتاپ قرار داره رو در کنار فایل image.png قرار بدم و zip کنم.

پس طبق تصویر زیر عمل میکنیم:

 

from zipfile import ZipFile

z = ZipFile( 'main.zip' , 'a' )

z.write('main.py'

z.close()

و حالا بعد از اجرای برنامه، همونطور که مشاهده می کنید فایل main.py هم که سورس پروژه ما هست، به فایل main.zip اضافه شد و درکنار فایل های قبلی zip شده قرار گرفت.

استخراج فایل های zip شده

اما میرسیم به اینکه چطور فایل هایی که درون یک فایل zip قرار دارند رو استخراج کنیم یا به اصطلاح فایل هارو بکشیم بیرون!

به عنوان مثال قصد داریم فایل هایی که درون main.zip قرار دارند رو بیاریم بیرون؛

برای اینکار کافیه فایل zip رو با مود r باز کنیم. به این معنی که میخوایم فایل رو بخونیم و محتویات فایل رو ببینیم.

 

z = ZipFile( 'main.zip' , 'r' )

خب حالا دیگه نیازی به تابع  write() نداریم، پس اون رو پاک میکنیم.

برای استخراج فایل ها کافیه تابع extractall() رو فراخوانی کنیم و طبق تصویر زیر داخل پرانتز آدرس محلی که میخواید فایل ها بعد از استخراج در اون مکان قرار بگیرند رو وارد کنید.

بنده Salam/ رو قرار دادم و انتظار دارم فایل ها رو در این پوشه استخراج کنه!

 

from zipfile import ZipFile

z = ZipFile( 'main.zip' , 'r' )

z.extractall('Salam/')

z.close()

بعد از اجرای برنامه یک فولدر به نام Salam  ساخته شد و وقتی وارد فولدر بشیم میتونیم فایل ها استخراج شده رو مشاهده کنیم.

برای مطالعه مقالات بیشتر در زمینه پایتون کلیک کنید.

منبع خارجی در زمینه پایتون

 

 

موفق باشید

 

2 ديدگاه

  1. 1398-09-16

    با سلام چه جوری میشه این ویدیو رو دانلود کرد؟

    • 1398-09-16

      با سلام.از اونجایی که چنین امکانی روی سایت وجود نداره.ولی شما بخواین میتونین با اینترنت دانلود منیجر ویدیو رو پخش کنین و بعد از اون دانلود کنین

نوشتن دیدگاه

نشانی ایمیل شما منتشر نخواهد شد.