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

Python file zip

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

Python file zip

Ora il tuo file archive.zip apparirà sul tuo sistema operativo (Windows Explorer)

Python file zip

Passo 3) Facendo doppio clic sul file, vedrai l'elenco di tutti i file presenti al suo interno.

Python file zip

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

Python file zip

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.

Python file zip

Facendo doppio clic sul file “testguru99.zip”, si aprirà un’altra finestra, che mostrerà i file in esso inclusi.

Python file zip

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)”