Esempio 1: Compressione di un singolo file
Crea un nuovo file chiamato 'codice postale1.pi' e aggiungi il seguente codice. file zip il modulo viene importato per comprimere il file. temperatura.cerniera lampo viene assegnato come nome del file zip con modalità di scrittura e, successivamente, il nome del file originale, temperatura.TXT e il tipo di compressione sono dati come parametri nel metodo di scrittura.
importa file zipzip_file = zipfile.ZipFile('temp.zip', 'w')
file zip.write('temp.txt', compress_type=zipfile.ZIP_DEFLATED)
file zip.vicino()
Esegui lo script
$ python3 codice postale1.piLa dimensione di temperatura.TXT è 27 byte e dopo la compressione, la dimensione di temperatura.cerniera lampo è 2 byte.
Esempio-2: Comprimere una directory particolare
Crea un nuovo file chiamato 'codice postale2.pi' e aggiungi il seguente codice. Una directory può contenere molti file, cartelle e sottocartelle. Per leggere il contenuto della directory, os il modulo di python viene importato con file zip modulo per comprimere la directory. In questo script, mydir la directory è usata per la compressione.
# importa i moduli richiestiimportare il sistema operativo
importa file zip
# Dichiara alla funzione di restituire tutti i percorsi dei file della particolare directory
def retrieve_file_paths(dirName):
# variabile dei percorsi dei file di configurazione
filePath = []
# Leggi tutte le directory, le sottodirectory e gli elenchi di file
per root, directory, file in os.walk(dirName):
per il nome del file nei file:
# Crea il percorso completo del file usando il modulo os.
filePath = os.sentiero.join (radice, nome file)
filePath.append(filePath)
# restituisce tutti i percorsi
restituire i percorsi dei file
# Dichiara la funzione principale
def principale():
# Assegna il nome della directory a zip
dir_name = 'mydir'
# Chiama la funzione per recuperare tutti i file e le cartelle della directory assegnata assigned
filePaths = retrieve_file_paths(dir_name)
# stampa l'elenco di tutti i file da zippare
print('Il seguente elenco di file verrà compresso:')
per fileName in filePaths:
print(nomefile)
# scrittura di file in un file zip
zip_file = zipfile.ZipFile(nome_dir+'.zip', 'w')
con zip_file:
# scrivendo ogni file uno per uno
per file in filePaths:
file zip.scrivere (file)
print(nome_dir+'.zip è stato creato con successo!')
# Chiama la funzione principale
if __name__ == "__main__":
principale()
Esegui lo script
$ python3 codice postale2.piLa dimensione di mydir è 21 byte e dopo la compressione, la dimensione di mydir.cerniera lampo è 2 byte.
Esempio 3: compressione di una directory data dall'argomento della riga di comando
Crea un nuovo file chiamato 'codice postale3.pi' e aggiungi il seguente codice. Per leggere il valore della riga di comando, un altro modulo Python sistema viene importato con os e file zip moduli.
# importa i moduli richiestiimportare il sistema operativo
sistema di importazione
importa file zip
# Dichiara alla funzione di restituire tutti i percorsi dei file di una particolare directory
def retrieve_file_paths(dirName):
# variabile dei percorsi dei file di configurazione
filePath = []
# Leggi tutte le directory, le sottodirectory e gli elenchi di file
per root, directory, file in os.walk(dirName):
per il nome del file nei file:
# Crea il percorso completo del file usando il modulo os.
filePath = os.sentiero.join (radice, nome file)
filePath.append(filePath)
# restituisce tutti i percorsi
restituire i percorsi dei file
# Dichiara la funzione principale
def principale():
# Controlla che siano forniti due argomenti al momento dell'esecuzione dello script
se len (sys.argomento) != 2 :
print ("Hai inserito il nome della directory da zippare")
sistema.uscita (1)
# Imposta il nome della directory dall'argomento del comando
dir_name = sys.argomento[1]
# Imposta il nome del file zip
zipFileName = nome_dir + ".cerniera lampo"
# Chiama la funzione per recuperare tutti i file e le cartelle della directory assegnata
filePaths = retrieve_file_paths(dir_name)
# stampa l'elenco dei file da zippare
print('Il seguente elenco di file verrà compresso:')
per fileName in filePaths:
print(nomefile)
# scrivi file e cartelle in un file zip
zip_file = zipfile.ZipFile(zipFileName, 'w')
con zip_file:
# scrivi ogni file separatamente
per file in filePaths:
file zip.scrivere (file)
print(file zipFileName+' è stato creato con successo!')
# Chiama la funzione principale
if __name__ == "__main__":
principale()
Esegui lo script
$ python3 codice postale3.pitest viene fornito come nome della directory nell'argomento della riga di comando. La dimensione di test è 21 byte e dopo la compressione, la dimensione di test.cerniera lampo è 2 byte.
Spero che questo tutorial ti aiuti a usare Python per comprimere qualsiasi file o directory.