Contoh-1: Memampatkan satu fail
Buat fail baru bernama 'kod pos1.py ' dan tambahkan kod berikut. zipfile modul diimport untuk memampatkan fail. temp.zip ditetapkan sebagai nama fail zip dengan mod tulis dan seterusnya, nama fail asal, temp.txt dan jenis kompres diberikan sebagai parameter dalam kaedah menulis.
import zipfilezip_file = zipfile.ZipFile (temp.zip ',' w ')
zip_file.tulis ('temp.txt ', compress_type = zipfile.ZIP_DEFLATED)
zip_file.tutup ()
Jalankan skrip
$ python3 kod zip1.pySaiz temp.txt adalah 27 bait dan selepas pemampatan, ukuran temp.zip adalah 2 bait.
Contoh-2: Memampatkan direktori tertentu
Buat fail baru bernama 'kod zip2.py ' dan tambahkan kod berikut. Direktori mungkin mengandungi banyak fail, folder dan subfolder. Untuk membaca kandungan direktori, os modul python diimport dengan zipfile modul untuk memampatkan direktori. Dalam skrip ini, mydir direktori digunakan untuk pemampatan.
# import modul yang diperlukanimport os
import zipfile
# Menyatakan fungsi untuk mengembalikan semua jalur fail dari direktori tertentu
def retrieve_file_paths (dirName):
# pemboleh ubah laluan fail persediaan
filePaths = []
# Baca semua direktori, subdirektori dan senarai fail
untuk root, direktori, fail di os.berjalan (dirName):
untuk nama fail dalam fail:
# Buat laluan penuh dengan menggunakan modul os.
filePath = os.jalan.gabung (root, nama fail)
failPaths.tambahkan (filePath)
# kembali semua jalan
mengembalikan failPaths
# Menyatakan fungsi utama
def utama ():
# Tetapkan nama direktori untuk zip
dir_name = 'mydir'
# Panggil fungsi untuk mengambil semua fail dan folder dari direktori yang ditetapkan
filePaths = retrieve_file_paths (dir_name)
# mencetak senarai semua fail yang akan dizip
cetak ('Senarai fail berikut akan dizip:')
untuk fileName dalam filePaths:
cetak (nama fail)
# menulis fail ke zipfile
zip_file = zipfile.ZipFile (dir_name + '.zip ',' w ')
dengan zip_file:
# menulis setiap fail satu persatu
untuk fail dalam filePaths:
zip_file.tulis (fail)
cetak (dir_name + '.fail zip berjaya dibuat!')
# Panggil fungsi utama
jika __nama__ == "__main__":
utama ()
Jalankan skrip
$ python3 kod zip2.pySaiz mydir adalah 21 bait dan selepas pemampatan, ukuran mydir.zip adalah 2 bait.
Contoh-3: Memampatkan direktori yang diberikan oleh argumen baris perintah
Buat fail baru bernama 'kod pos3.py ' dan tambahkan kod berikut. Untuk membaca nilai baris perintah, modul python lain sys diimport dengan os dan zipfile modul.
# import modul yang diperlukanimport os
import sys
import zipfile
# Menyatakan fungsi untuk mengembalikan semua jalur fail dari direktori tertentu
def retrieve_file_paths (dirName):
# pemboleh ubah laluan fail persediaan
filePaths = []
# Baca semua direktori, subdirektori dan senarai fail
untuk root, direktori, fail di os.berjalan (dirName):
untuk nama fail dalam fail:
# Buat jalan masuk penuh dengan menggunakan modul os.
filePath = os.jalan.gabung (root, nama fail)
failPaths.tambahkan (filePath)
# kembali semua jalan
mengembalikan failPaths
# Menyatakan fungsi utama
def utama ():
# Periksa dua argumen yang diberikan pada masa menjalankan skrip
sekiranya len (sys.berhujah) != 2:
cetak ("Anda telah memasukkan nama direktori untuk zip")
sys.jalan keluar (1)
# Tetapkan nama direktori dari argumen perintah
dir_name = sys.argv [1]
# Tetapkan nama fail zip
zipFileName = dir_name + ".zip "
# Panggil fungsi untuk mengambil semua fail dan folder dari direktori yang ditetapkan
filePaths = retrieve_file_paths (dir_name)
# mencetak senarai fail yang akan dizip
cetak ('Senarai fail berikut akan dizip:')
untuk fileName dalam filePaths:
cetak (nama fail)
# tulis fail dan folder ke zipfile
zip_file = zipfile.ZipFile (zipFileName, 'w')
dengan zip_file:
# tulis setiap fail secara berasingan
untuk fail dalam filePaths:
zip_file.tulis (fail)
cetak (zipFileName + 'fail berjaya dibuat!')
# Panggil fungsi utama
jika __nama__ == "__main__":
utama ()
Jalankan skrip
$ python3 kod zip3.pyujian diberikan sebagai nama direktori dalam argumen baris perintah. Saiz ujian adalah 21 bait dan selepas pemampatan, ukuran ujian.zip adalah 2 bait.
Saya harap, tutorial ini dapat membantu anda menggunakan python untuk memampatkan sebarang fail atau direktori.