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โ and โ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")
Sintesi
- 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)โ







