Pitone

Usa python per comprimere un file e una directory

Usa python per comprimere un file e una directory
Un file compresso contiene molti file, directory e sottodirectory. Sono disponibili molte applicazioni per creare un file compresso di qualsiasi file o directory di grandi dimensioni e recuperare file o cartelle estraendo un file compresso. Quando vogliamo trasferire qualsiasi cartella di grandi dimensioni o su Internet, è meglio comprimere il contenuto prima del trasferimento. Questo rende il compito più veloce. Puoi usare script Python per comprimere ed estrarre qualsiasi file o directory di grandi dimensioni. file zip il modulo di python è usato per fare il compito. Come puoi usare python3 per comprimere qualsiasi file o directory è mostrato in questo tutorial usando vari esempi.

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 zip
zip_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.pi

La 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 richiesti
 
importare 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.pi

La 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 richiesti
 
importare 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.pi

test 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.

Giochi rimasterizzati in HD per Linux che non hanno mai avuto una versione Linux prima
Molti sviluppatori ed editori di giochi stanno realizzando remaster HD di vecchi giochi per prolungare la vita del franchise, per favore i fan richied...
Come utilizzare AutoKey per automatizzare i giochi Linux
AutoKey è un'utilità di automazione desktop per Linux e X11, programmata in Python 3, GTK e Qt. Utilizzando la sua funzionalità di scripting e MACRO, ...
Come mostrare il contatore FPS nei giochi Linux
I giochi Linux hanno avuto una grande spinta quando Valve ha annunciato il supporto Linux per il client Steam e i loro giochi nel 2012. Da allora, mol...