Un file compresso contiene molti file, directory e sottodirectory. Sono disponibili molte applicazioni per creare un file di comprime di qualsiasi file di grandi dimensioni o directory e recuperare file o cartelle estraendo un file compresso. Quando vogliamo trasferire qualsiasi cartella grande o su Internet, è meglio comprimere il contenuto prima di trasferire. Questo rende l'attività più veloce. È possibile utilizzare gli script Python per comprimere ed estrarre qualsiasi file o directory di grandi dimensioni.
file zip Il modulo di Python viene utilizzato per svolgere l'attività. Come è possibile utilizzare Python3 per comprimere qualsiasi file o directory è mostrato in questo tutorial utilizzando vari esempi.
Esempio-1: comprimendo un singolo file
Crea un nuovo file denominato 'ZipCode1.Py ' e aggiungi il seguente codice. file zip Il modulo viene importato per comprimere il file. temp.cerniera lampo è assegnato come nome del file zip con modalità di scrittura e successivo, il nome file originale, temp.TXT e il tipo di compressione sono riportati come parametri nel metodo di scrittura.
Importa zipfile
zip_file = zipfile.Zipfile ('temp.zip ',' w ')
file zip.Scrivi ('temp.txt ', cimpress_type = zipfile.Zip_deflated)
file zip.vicino()
Esegui lo script
$ Python3 ZipCode1.Py
La dimensione di temp.TXT È 27 byte e dopo la compressione, le dimensioni di temp.cerniera lampo È 2 byte.
Esempio-2: comprimendo una particolare directory
Crea un nuovo file denominato 'ZipCode2.Py ' e aggiungi il seguente codice. Una directory può contenere molti file, cartelle e sottocartelle. Per leggere il contenuto della directory, sistema operativo Il modulo di Python viene importato con file zip modulo per comprimere la directory. In questa sceneggiatura, mydir La directory viene utilizzata per la compressione.
# Importa moduli richiesti
Import OS
Importa zipfile
# Dichiarare la funzione per restituire tutti i percorsi dei file della particolare directory
Def Recove_File_Paths (dirname):
# Variabile per i percorsi dei file di configurazione
FilePaths = []
# Leggi tutte le directory, le sottodirectory ed elenchi di file
Per root, directory, file in sistema operativo.Walk (dirname):
per il nome file nei file:
# Crea il FilePath completo utilizzando il modulo OS.
FILEPATH = OS.sentiero.join (root, nome file)
filepaths.Append (FilePath)
# Restituisci tutti i percorsi
restituire filepaths
# Dichiarare la funzione principale
def main ():
# Assegna il nome della directory a zip
dir_name = 'mydir'
# Chiama la funzione per recuperare tutti i file e le cartelle della directory assegnata
FILEPATHS = Retrieve_File_Paths (dir_name)
# Stampa l'elenco di tutti i file da zip
print ('Il seguente elenco di file verrà zippato:')
Per fileName in FilePaths:
Stampa (nome file)
# Scrivere file in un file zip
zip_file = zipfile.ZipFile (dir_name+'.zip ',' w ')
con zip_file:
# scrivere ogni file uno per uno
per file in filepaths:
file zip.Scrivi (file)
Stampa (dir_name+'.Il file zip viene creato correttamente!')
# Chiama la funzione principale
Se __Name__ == "__main__":
principale()
Esegui lo script
$ Python3 ZipCode2.Py
La dimensione di mydir È 21 byte e dopo la compressione, le dimensioni di mydir.cerniera lampo È 2 byte.
Esempio-3: comprimendo una directory data dall'argomento della riga di comando
Crea un nuovo file denominato 'ZipCode3.Py ' e aggiungi il seguente codice. Per leggere il valore della riga di comando, un altro modulo Python sys è importato con sistema operativo E file zip moduli.
# Importa moduli richiesti
Import OS
Import sys
Importa zipfile
# Dichiarare la funzione per restituire tutti i percorsi di file di una particolare directory
Def Recove_File_Paths (dirname):
# Variabile per i percorsi dei file di configurazione
FilePaths = []
# Leggi tutte le directory, le sottodirectory ed elenchi di file
Per root, directory, file in sistema operativo.Walk (dirname):
per il nome file nei file:
# Crea il FilePath completo utilizzando il modulo OS.
FILEPATH = OS.sentiero.join (root, nome file)
filepaths.Append (FilePath)
# Restituisci tutti i percorsi
restituire filepaths
# Dichiarare la funzione principale
def main ():
# Controlla due argomenti al momento dell'esecuzione dello script
Se len (sys.argv) != 2:
Stampa ("Hai inserito il nome della directory per zip")
sys.uscita (1)
# Imposta il nome della directory dall'argomento del comando
dir_name = sys.argv [1]
# Imposta il nome del file zip
zipFileName = dir_name + ".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 zip
print ('Il seguente elenco di file verrà zippato:')
Per fileName in FilePaths:
Stampa (nome file)
# scrivi file e cartelle su un file zip
zip_file = zipfile.Zipfile (zipfilename, 'w')
con zip_file:
# scrivi ogni file separatamente
per file in filepaths:
file zip.Scrivi (file)
Print (zipfilename+'Il file viene creato correttamente!')
# Chiama la funzione principale
Se __Name__ == "__main__":
principale()
Esegui lo script
$ Python3 ZipCode3.Py
test è dato come nome directory nell'argomento della riga di comando. La dimensione di test È 21 byte e dopo la compressione, le dimensioni di test.cerniera lampo È 2 byte.
Spero che questo tutorial ti aiuterà a usare Python per comprimere qualsiasi file o directory.