Python File ZIP con esempio
Python 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 vuoi archiviare
ZipFile.write(filename)
Ecco i passaggi per creare un file zip in Python
Passo 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
- Utilizzare la funzione di divisione per dividere 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
- Successivamente passiamo alla directory principale delle cose che vogliamo comprimere. Quindi tutto nella directory verrà compresso
- Quando esegui il codice, puoi vedere che il file zip dell'archivio viene creato sul lato destro del pannello.
Passo 2) Una volta creato il file di archivio, puoi fare clic con il pulsante destro del mouse sul file e selezionare il sistema operativo, che visualizzerà i file di archivio al suo interno come mostrato di seguito
Ora il tuo file archive.zip apparirà sul tuo sistema operativo (Windows Explorer)
Passo 3) Facendo doppio clic sul file, vedrai l'elenco di tutti i file presenti al suo interno.
Passo 4) In Python possiamo avere più 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 file zip Python modulo. Questo modulo offre il pieno controllo sulla creazione di file zip
- Creiamo un nuovo file Zip con 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 utilizzato la variabile "newzip" per fare riferimento al file zip che abbiamo creato
- Utilizzando la funzione write 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"
Note:: Qui non diamo alcun comando per "chiudere" il file come "newzip.close" perché utilizziamo il blocco dell'ambito "Con", quindi quando il programma non rientra in questo ambito il file verrà ripulito e chiuso automaticamente.
Passo 5) Quando ti -> fai clic con il pulsante destro del mouse sul file (testguru99.zip) e -> seleziona il tuo sistema operativo (Windows Explorer), mostrerà i file di archivio nella cartella come mostrato di seguito.
Facendo doppio clic sul file “testguru99.zip”, si aprirà un’altra finestra, che mostrerà i file in esso inclusi.
Ecco il codice completo
Python 2 Esempio
import os import shutil from zipfile import ZipFile from os import path from shutil import make_archive def main(): # Check if file exists if path.exists("guru99.txt"): # get the path to the file in the current directory src = path.realpath("guru99.txt"); # rename the original file os.rename("career.guru99.txt","guru99.txt") # now put things into a ZIP archive root_dir,tail = path.split(src) shutil.make_archive("guru99 archive", "zip", root_dir) # more fine-grained control over ZIP files with ZipFile("testguru99.zip","w") as newzip: newzip.write("guru99.txt") newzip.write("guru99.txt.bak") if __name__== "__main__": main()
Python 3 Esempio
import os import shutil from zipfile import ZipFile from os import path from shutil import make_archive # Check if file exists if path.exists("guru99.txt"): # get the path to the file in the current directory src = path.realpath("guru99.txt"); # rename the original file os.rename("career.guru99.txt","guru99.txt") # now put things into a ZIP archive root_dir,tail = path.split(src) shutil.make_archive("guru99 archive","zip",root_dir) # more fine-grained control over ZIP files with ZipFile("testguru99.zip", "w") as newzip: newzip.write("guru99.txt") newzip.write("guru99.txt.bak")
Sommario
- Per comprimere l'intera directory utilizzare il comando "shutil.make_archive("name","zip", root_dir)
- Per selezionare i file da zippare utilizzare il comando “ZipFile.write(filename)”