Zip adalah cara yang elegan untuk mengompresi beberapa file dan menggabungkannya menjadi satu. Ini tidak hanya menghemat ruang penyimpanan tetapi juga bandwidth saat mentransfer file melalui jaringan. Salah satu fitur terbaik zip adalah dapat digunakan di semua platform utama: Windows, Linux, dan Mac.
Zip menggunakan kompresi lossless sehingga menyimpan semua data saat mengompresi dan membuka kompresinya. Anda juga dapat mengenkripsi dan mendekripsi file zip Anda.
Dengan begitu banyak fitur untuk dijelajahi, temukan cara membaca, zip, dan unzip file menggunakan modul zipfile Python.
Apa itu Modul zipfile?
Anda dapat menggunakan modul zipfile standar untuk memanipulasi file zip menggunakan Python. Dengan modul ini, Anda dapat membuka dan membaca file zip, membaca metadatanya, membuat file zip, mengompresnya, dan mengekstrak file. Ada tiga metode kompresi yang tersedia: Deflate, Bzip2, dan LZMA.
Salah satu kekurangan modul adalah kemampuan untuk menangani file multi-disk, tetapi menangani ekstensi ZIP64. Itu juga dapat mendekripsi arsip zip tetapi tidak mengenkripsinya. Menggunakan modul zipfile Anda bisa mendapatkan metadata file zip seperti tanggal dan waktu modifikasi. Anda juga dapat mengambil detail seperti sistem operasi yang digunakan untuk membuat file, versi zip, dan ukuran file dalam format terkompresi dan tidak terkompresi.
Cara Membuat File Zip Menggunakan Python
Anda dapat meng-zip banyak file ke dalam satu arsip menggunakan modul zipfile Python. Impor File Zip modul dari zipfile paket untuk melakukan operasi zip yang diperlukan. Juga impor itu os modul untuk memilih dan menyimpan file.
Tentukan fungsi get_all_file_paths(). Itu harus menerima parameter direktori yang berisi jalur ke folder yang berisi file ke zip.
Inisialisasi daftar kosong yang akan menyimpan daftar jalur file. Gunakan for loop untuk mendapatkan konten lengkap dari direktori target menggunakan os.berjalan() fungsi. Fungsi ini mengambil nama file dalam pohon direktori dengan memindahkannya dalam pendekatan top-down atau bottom-up. Untuk setiap direktori, fungsi mengembalikan tiga tuple yang berisi root, dirs, dan file.
Root adalah string yang berisi path lengkap ke direktori. Daftar dirs mencakup semua subdirektori yang terdapat dalam direktori. Daftar file berisi semua file yang ada di direktori.
Di dalam loop, deklarasikan yang lain loop untuk mengulangi daftar file. Menggunakan os.path.bergabung() berfungsi untuk menggabungkan nama direktori dengan masing-masing nama file untuk membuat path lengkap. Kemudian, tambahkan nama file lengkap ini ke daftar yang Anda buat sebelumnya. Setelah operasi ini selesai, kembalikan daftar jalur file.
# impor modul yang diperlukan
dari zipfile impor File Zip
impor os# buat fungsi untuk mendapatkan semua jalur file
defget_all_file_paths(direktori):
# menginisialisasi daftar kosong untuk menyimpan jalur file
file_paths = []# menavigasi melalui file
untukakar, direktori, filedi dalamos.berjalan(direktori):
untuk nama file dalam file:
# gabungkan root dan nama file untuk membuat jalur file yang lengkap
filepath = os.path.join (root, nama file)
file_paths.menambahkan(jalur file)
# mengembalikan semua jalur file
kembali file_paths
Simpan jalur ke folder yang berisi file yang ingin Anda zip dalam variabel bernama direktori. Panggil fungsi, get_all_file_paths() yang Anda buat sebelumnya dan menyimpan nilai yang dikembalikan file_paths.
Tampilkan pesan kepada pengguna untuk memberi tahu mereka bahwa ini adalah file yang akan di-zip oleh program. Ulangi file dan tampilkan namanya.
Berikan nama yang Anda inginkan untuk file zip Anda bersama dengan spesifikasi bahwa program mengembalikan file yang dapat ditulis menggunakan pernyataan with untuk menangani pengecualian. Ulangi setiap file dan gunakan fungsi write() di atas file yang dapat ditulis ke file zip.
Ketika operasi selesai, keluarkan pesan yang menjelaskan bahwa program berhasil meng-zip semua file.
# jalur ke folder yang ingin Anda zip
direktori = './pythonzip'# memanggil fungsi untuk mendapatkan semua jalur file di direktori
file_paths = get_all_file_paths (direktori)# mencetak daftar semua file yang ingin Anda zip
mencetak('Daftar file yang akan di-zip:')untuk file_name di file_paths:
mencetak(nama file)# menulis file ke file zip
dengan File Zip('file_saya.zip', 'w') sebagai ritsleting:
# tulis setiap file satu per satu
untuk file di file_paths:
ritsleting.menulis(mengajukan)
mencetak('Semua file di-zip!')
Cara Unzip File Menggunakan Python
Implementasi unzip file menggunakan modul zipfile jauh lebih mudah. Impor zipfile paket dari File Zip module dan simpan nama file zip yang ingin Anda ekstrak dalam sebuah variabel. Gunakan pernyataan with untuk menangani pengecualian dan buka file yang ingin Anda ekstrak dalam mode baca. Menggunakan printdir() berfungsi untuk menampilkan daftar isi file yang ada di dalam zip.
Tampilkan pesan progres bahwa Anda sedang mengekstrak file dan menggunakan ekstrak semua() berfungsi untuk mengekstrak isi file zip ke direktori kerja saat ini. Alternatifnya, Anda dapat menyertakan parameter jalur untuk mengubah jalur tempat program mengekstrak file.
Menampilkan pesan menggunakan mencetak pernyataan tentang penyelesaian operasi.
# mengimpor modul yang diperlukan
dari zipfile impor File Zip# berikan nama file zip yang ingin Anda ekstrak
nama_berkas = "ekstrak.zip"# membuka file zip dalam mode baca
dengan ZipFile (nama_berkas, 'R') sebagai ritsleting:
# menampilkan konten file zip
ritsleting.printdir()
# mengekstrak semua file
mencetak('Ekstrak sedang berlangsung...')
ritsleting.ekstrak semua()
mencetak('Semua file diekstrak!')
Lebih Lanjut Tentang File Zip
File zip telah mendapatkan banyak popularitas dan digunakan selama beberapa dekade sekarang. Situs web populer seperti GitHub dan Google Drive memungkinkan Anda mengunduh kumpulan file sebagai arsip zip. Program zip memampatkan sekumpulan file menjadi satu paket. Ini berbeda dengan alat seperti tar yang mengemas file menjadi satu tetapi tidak mengompresnya.
Jika Anda ingin mengenkripsi file Anda menggunakan algoritme yang lebih efisien, file RAR adalah cara yang tepat. RAR menggunakan algoritma AES-128 yang lebih baik daripada algoritma deflate yang digunakan oleh file zip. Pada akhirnya, pilih salah satu yang paling sesuai dengan kebutuhan Anda.