Python membolehkan anda membuat arkib zip / tar dengan cepat.
Perintah berikut akan meng-zip keseluruhan direktori
shutil.make_archive(output_filename, 'zip', dir_name)
Perintah berikut memberi anda kawalan pada fail yang ingin anda arkibkan
ZipFile.write(filename)
Berikut adalah langkah-langkah untuk membuat Zip File di Python
Langkah 1) Untuk membuat fail arkib dari Python, pastikan penyataan import anda betul dan teratur. Berikut pernyataan import untuk arkib adalah
from shutil import make_archive
Penjelasan Kod
- Import kelas make_archive dari modul tutup
- Gunakan fungsi split untuk memisahkan direktori dan nama file dari jalan ke lokasi file teks (guru99)
- Kemudian kami memanggil modul "shutil.make_archive (" arkib guru99, "zip", root_dir) "untuk membuat fail arkib, yang akan dalam format zip
- Selepas itu kami memasukkan direktori root perkara yang ingin kami naiki. Jadi semua yang ada di dalam direktori akan dizip
- Apabila anda menjalankan kod, anda dapat melihat fail zip arkib dibuat di sebelah kanan panel.
Langkah 2)
Sekarang fail archive.zip anda akan muncul di OS anda (Windows Explorer)
Langkah 3) Apabila anda mengklik dua kali pada fail, anda akan melihat senarai semua fail di dalamnya.
Langkah 4) Di Python kita boleh mempunyai lebih banyak kawalan ke atas arkib kerana kita dapat menentukan fail tertentu yang akan disertakan di bawah arkib. Dalam kes kami, kami akan memasukkan dua fail di bawah arkib "guru99.txt" dan "guru99.txt.bak".
Penjelasan Kod
- Import kelas Zipfile dari modul zip fail Python. Modul ini memberikan kawalan penuh dalam membuat fail zip
- Kami membuat Zipfile baru dengan nama ("testguru99.zip," w ")
- Untuk membuat kelas Zipfile baru, perlu memberikan kebenaran kerana fail, jadi anda perlu menulis maklumat ke dalam fail sebagai newzip
- Kami menggunakan pemboleh ubah "newzip" untuk merujuk pada fail zip yang kami buat
- Dengan menggunakan fungsi tulis pada pemboleh ubah "newzip", kami menambahkan fail "guru99.txt" dan "guru99.txt.bak" ke arkib
Apabila anda melaksanakan kod, anda dapat melihat fail dibuat di sebelah kanan panel dengan nama "guru99.zip"
Catatan : Di sini kami tidak memberikan perintah untuk "menutup" fail seperti "newzip.close" kerana kami menggunakan kunci skop "Dengan", jadi apabila program berada di luar ruang lingkup ini fail akan dibersihkan dan ditutup secara automatik.
Langkah 5) Apabila anda -> klik kanan pada fail (testguru99.zip) dan -> pilih OS anda (Windows Explorer) , ia akan menunjukkan fail arkib dalam folder seperti gambar di bawah.
Apabila anda mengklik dua kali pada fail "testguru99.zip", ia akan membuka tetingkap lain, dan ini akan menunjukkan fail yang disertakan di dalamnya.
Inilah kod lengkapnya
Python 2 Contoh
import osimport tutupdari zipfile import ZipFiledari laluan import osdari shutil import make_archivedef utama ():# Periksa sama ada fail adajika path.exists ("guru99.txt"):# dapatkan jalan ke fail dalam direktori semasasrc = path.realpath ("guru99.txt");# namakan semula fail asalos.rename ("kerjaya.guru99.txt", "guru99.txt")# sekarang masukkan barang ke arkib ZIProot_dir, tail = path.split (src)shutil.make_archive ("arkib guru99", "zip", root_dir)# kawalan lebih terperinci ke atas fail ZIPdengan ZipFile ("testguru99.zip", "w") sebagai newzip:newzip.write ("guru99.txt")newzip.write ("guru99.txt.bak")jika __nama __ == "__main__":utama ()
Python 3 Contoh
import osimport tutupdari zipfile import ZipFiledari laluan import osdari shutil import make_archive# Periksa sama ada fail adajika path.exists ("guru99.txt"):# dapatkan jalan ke fail dalam direktori semasasrc = path.realpath ("guru99.txt");# namakan semula fail asalos.rename ("kerjaya.guru99.txt", "guru99.txt")# sekarang masukkan barang ke arkib ZIProot_dir, tail = path.split (src)shutil.make_archive ("arkib guru99", "zip", root_dir)# kawalan lebih terperinci ke atas fail ZIPdengan ZipFile ("testguru99.zip", "w") sebagai newzip:newzip.write ("guru99.txt")newzip.write ("guru99.txt.bak")
Ringkasan
- Untuk zip keseluruhan direktori, gunakan arahan "shutil.make_archive (" name "," zip ", root_dir)
- Untuk memilih fail untuk zip gunakan arahan "ZipFile.write (nama fail)"