Perintah berikut memberi Anda kontrol pada file yang ingin Anda arsipkan
ZipFile.write(filename)
Berikut langkah-langkah membuat File Zip dengan Python
Langkah 1) Untuk membuat file arsip dari Python, pastikan Anda memiliki pernyataan impor yang benar dan berurutan. Di sini pernyataan impor untuk arsip adalah from shutil import make_archive
Penjelasan Kode
Impor kelas make_archive dari modul shutil
Gunakan fungsi split untuk memisahkan direktori dan nama file dari path ke lokasi file teks (guru99)
Kemudian kita panggil modul “shutil.make_archive(“guru99 archive, “zip”, root_dir)” untuk membuat file arsip, yang akan berformat zip
Setelah itu, kami memasukkan direktori root dari hal-hal yang ingin kami zip. Jadi semua yang ada di direktori akan di-zip
Saat menjalankan kode, Anda dapat melihat file zip arsip dibuat di sisi kanan panel.
Langkah 2) Setelah file arsip Anda dibuat, Anda dapat mengklik kanan pada file tersebut dan memilih OS, dan itu akan menampilkan file arsip Anda di dalamnya seperti yang ditunjukkan di bawah ini
Sekarang file archive.zip Anda akan muncul di OS Anda (Windows Explorer)
Langkah 3) Ketika Anda mengklik dua kali pada file tersebut, Anda akan melihat daftar semua file di sana.
Langkah 4) Dengan Python kita dapat memiliki kontrol lebih besar atas arsip karena kita dapat menentukan file spesifik mana yang akan disertakan di bawah arsip. Dalam kasus kami, kami akan menyertakan dua file di bawah arsip “guru99.txt” dan “guru99.txt.bak”.
Penjelasan Kode
Impor kelas Zipfile dari file zip modul Python. Modul ini memberikan kontrol penuh untuk membuat file zip
Kami membuat Zipfile baru dengan nama ( "testguru99.zip, "w")
Membuat kelas Zipfile baru, memerlukan izin karena ini adalah file, jadi Anda perlu menulis informasi ke dalam file sebagai zip baru
Kami menggunakan variabel “newzip” untuk merujuk ke file zip yang kami buat
Menggunakan fungsi tulis pada variabel "newzip", kami menambahkan file "guru99.txt" dan "guru99.txt.bak" ke arsip
Saat Anda menjalankan kode, Anda dapat melihat file dibuat di sisi kanan panel dengan nama “guru99.zip”
Catatan :Di sini kita tidak memberikan perintah untuk “menutup” file seperti “newzip.close” karena kita menggunakan kunci lingkup “Dengan”, jadi ketika program berada di luar lingkup ini, file akan dibersihkan dan ditutup secara otomatis.
Langkah 5) Ketika Anda -> klik kanan pada file (testguru99.zip) dan -> pilih OS Anda (Windows Explorer) , maka akan tampil file arsip dalam folder seperti gambar di bawah ini.
Ketika Anda mengklik dua kali pada file “testguru99.zip”, itu akan membuka jendela lain, dan ini akan menampilkan file-file yang termasuk di dalamnya.
Ini kode lengkapnya
Contoh Python 2
import os
import shutil
from zipfile import ZipFile
from os import path
from shutil import make_archive
def main():
# Check if file exists
if path.exists("guru99.txt"):
# get the path to the file in the current directory
src = path.realpath("guru99.txt");
# rename the original file
os.rename("career.guru99.txt","guru99.txt")
# now put things into a ZIP archive
root_dir,tail = path.split(src)
shutil.make_archive("guru99 archive", "zip", root_dir)
# more fine-grained control over ZIP files
with ZipFile("testguru99.zip","w") as newzip:
newzip.write("guru99.txt")
newzip.write("guru99.txt.bak")
if __name__== "__main__":
main()
Contoh Python 3
import os
import shutil
from zipfile import ZipFile
from os import path
from shutil import make_archive
# Check if file exists
if path.exists("guru99.txt"):
# get the path to the file in the current directory
src = path.realpath("guru99.txt");
# rename the original file
os.rename("career.guru99.txt","guru99.txt")
# now put things into a ZIP archive
root_dir,tail = path.split(src)
shutil.make_archive("guru99 archive","zip",root_dir)
# more fine-grained control over ZIP files
with ZipFile("testguru99.zip", "w") as newzip:
newzip.write("guru99.txt")
newzip.write("guru99.txt.bak")
Ringkasan
Untuk zip seluruh direktori gunakan perintah “shutil.make_archive(“name”,”zip”, root_dir)
Untuk memilih file yang akan di-zip gunakan perintah “ZipFile.write(filename)”