Python ti consente di creare rapidamente archivi zip / tar.
Il seguente comando comprimerà l'intera directory
shutil.make_archive(output_filename, 'zip', dir_name)
Il seguente comando ti dà il controllo sui file che desideri archiviare
ZipFile.write(filename)
Ecco i passaggi per creare un file zip in Python
Passaggio 1) Per creare un file di archivio da Python, assicurati di avere la tua dichiarazione di importazione corretta e in ordine. Qui la dichiarazione di importazione per l'archivio è
from shutil import make_archive
Spiegazione del codice
- Importa la classe make_archive dal modulo shutil
- Usa la funzione split per suddividere la directory e il nome del file dal percorso alla posizione del file di testo (guru99)
- Quindi chiamiamo il modulo "shutil.make_archive (" guru99 archive, "zip", root_dir) "per creare il file di archivio, che sarà in formato zip
- Dopodiché passiamo nella directory principale delle cose che vogliamo essere zippate. Quindi tutto nella directory verrà zippato
- Quando esegui il codice, puoi vedere il file zip dell'archivio creato sul lato destro del pannello.
Passo 2)
Ora il tuo file archive.zip apparirà sul tuo sistema operativo (Windows Explorer)
Passaggio 3) Quando fai doppio clic sul file, vedrai l'elenco di tutti i file al suo interno.
Passaggio 4) In Python possiamo avere un maggiore controllo sull'archivio poiché possiamo definire quale file specifico includere nell'archivio. Nel nostro caso, includeremo due file nell'archivio "guru99.txt" e "guru99.txt.bak".
Spiegazione del codice
- Importa la classe Zipfile dal modulo Python del file zip. Questo modulo offre il pieno controllo sulla creazione di file zip
- Creiamo un nuovo file zip con il nome ("testguru99.zip," w ")
- La creazione di una nuova classe Zipfile, richiede il passaggio dell'autorizzazione perché è un file, quindi è necessario scrivere le informazioni nel file come newzip
- Abbiamo usato la variabile "newzip" per fare riferimento al file zip che abbiamo creato
- Utilizzando la funzione di scrittura sulla variabile "newzip", aggiungiamo i file "guru99.txt" e "guru99.txt.bak" all'archivio
Quando esegui il codice puoi vedere che il file viene creato sul lato destro del pannello con il nome "guru99.zip"
Nota : qui non diamo alcun comando per "chiudere" il file come "newzip.close" perché usiamo il blocco dell'ambito "With", quindi quando il programma non rientra in questo ambito il file verrà ripulito e chiuso automaticamente.
Passaggio 5) Quando -> fai clic con il pulsante destro del mouse sul file (testguru99.zip) e -> seleziona il tuo sistema operativo (Windows Explorer) , verranno visualizzati i file di archivio nella cartella come mostrato di seguito.
Quando fai doppio clic sul file "testguru99.zip", si aprirà un'altra finestra, e questa mostrerà i file inclusi in essa.
Ecco il codice completo
Esempio di Python 2
import osimport shutilda zipfile importa ZipFiledal percorso di importazione del sistema operativoda shutil importa make_archivedef main ():# Controlla se il file esistese path.exists ("guru99.txt"):# ottiene il percorso del file nella directory correntesrc = path.realpath ("guru99.txt");# rinomina il file originaleos.rename ("career.guru99.txt", "guru99.txt")# ora metti le cose in un archivio ZIProot_dir, tail = path.split (src)shutil.make_archive ("archivio guru99", "zip", root_dir)# controllo più dettagliato sui file ZIPcon ZipFile ("testguru99.zip", "w") come newzip:newzip.write ("guru99.txt")newzip.write ("guru99.txt.bak")se __name __ == "__main__":principale()
Esempio di Python 3
import osimport shutilda zipfile importa ZipFiledal percorso di importazione del sistema operativoda shutil importa make_archive# Controlla se il file esistese path.exists ("guru99.txt"):# ottiene il percorso del file nella directory correntesrc = path.realpath ("guru99.txt");# rinomina il file originaleos.rename ("career.guru99.txt", "guru99.txt")# ora metti le cose in un archivio ZIProot_dir, tail = path.split (src)shutil.make_archive ("archivio guru99", "zip", root_dir)# controllo più dettagliato sui file ZIPcon ZipFile ("testguru99.zip", "w") come newzip:newzip.write ("guru99.txt")newzip.write ("guru99.txt.bak")
Sommario
- Per comprimere l'intera directory usa il comando "shutil.make_archive (" name "," zip ", root_dir)
- Per selezionare i file da comprimere utilizzare il comando "ZipFile.write (filename)"