Python zip: che cos’è? A cosa serve? Come utilizzarla?

Tra i vari linguaggi di programmazione, uno dei più utilizzati è Python. Tra le sue funzioni c’è zip, che permette di creare archivi di compressione o decompressione di dati: ecco cosa è e a cosa serve e quali sono le sue principali funzioni.

Cos’è Python zip

Il linguaggio di programmazione Python è nato nel 1991 e, ancora oggi, è uno dei più utilizzati e comprensibili soprattutto da chi non è un esperto dell’informatica. Le sua caratteristica principale è la semplicità, inoltre permette diversi usi ed è in grado di supportare la programmazione a oggetti e la programmazione procedurale. Python si occupa di aspetti molto tecnici e della gestione della maggior complessità del programma, lasciando al programmatore solo il piacere della scrittura del codice, senza che egli debba concentrarsi su altri dettagli che possono risultare difficoltosi e noiosi. Altra caratteristica che lo rende fruibile da molti è la semplicità di linguaggio: usa, infatti, le parole inglese come veri e propri comandi, in modo da facilitare la lettura del codice. Chi vuole provarlo può scaricare direttamente Python sul proprio pc senza costi.

Una delle funzioni più utili di Python è la possibilità di creare archivi di compressione e decompressione dati, che contengono al loro interno i file zip. Ma che cos’è un file zip e cosa contiene?

A cosa serve e come si usa

Un file zip è un formato di file, che al suo interno può contenere altri file o cartelle compressi, senza perdita di dati. In sostanza, con questo modalità, ad esempio, è possibile inviare tramite mail insiemi di dati molto grossi, riducendone la grandezza e avendo la certezza di non perdere alcuna informazione. Essendo la mole dei dati minore, in automatico anche la velocità di trasferimento si riduce di molto.

Innanzitutto, è indispensabile sapere come creare un archivio zip nei programmi in Python. I passaggi sono i seguenti:

  • Creazione/apertura in modalità scrittura: archivio = zipfile.Zipfil(“mio_archivio.zip’ , “w”)
  • Aggiunta file e compressione: archivio.write(“/file/da/comprimere/urls.py”, compress…type=zipfile.ZIP…DEFLATED).
  • Chiusura: archivio.close ().

È sconsigliato provare ad aggiungere ulteriore contenuto a un archivio già esistente. Il parametro “w” andrebbe, infatti, a eliminare tutto ciò che è già presente. Per questo, è utile usare il parametro “a”, seguendo tali passaggi:

  • Apertura in modalità aggiunta: archivio=zipfile.Zipfile(‘mio_archivio.zip’,”a”)
  • Aggiunta: archivio.write(“manage.py”, compress_type=zipfile.ZIP..DEFLATED)
  • Chiusura archivio: archivio.close().

Oltre alla funzione di creazione, è utile anche quella dell’estrazione di contenuto da un file zip. Tale procedimento si svolge con extractcall():

  • Apertura dell’archivio per l’estrazione: archivio = zipfile.Zipfile(‘mio_archivio.zip’).
  • Estrazione di tutti i file del contenuto: archivio.extractcall (“/percorso/dove/estrarre/volendo/nuova/cartella”).
  • Chiusura archivio: archivio.close().

Non sempre si necessita di estrarre l’intero contenuto in una volta sola. Ecco, quindi, come procedere con l’estrazione di un singolo file. Ciò è possibile usando extract() al posto di extractall():

  • Apertura dell’archivio per estrazione: archivio = zipfile.ZIpfile(‘mio_archivio.zip’).
  • Estrazione di un singolo file: archivio.extract(“file”,”/percorso/dove/estrarre/volendo/nuova/cartella).
  • Chiusura archivio: archivio.close().

Un’ultima funzione che può rivelarsi utile è quella della lettura delle informazioni di quanto contenuto nel file zip quando servirà vederlo nei programmi per poter effettuare delle azioni direttamente sui file presenti. In tal caso, il procedimento da seguire è il seguente:

  • Apertura dell’archivio per lettura: archivio = zipfile.Zipfile(‘mio_archivio.zip’).
  • Effettuazione di una lista dell’intero contenuto dell’archivio: archivio.namelist()[“manage.py”,”urls.py”].
  • Ottenere informazioni: url = archivio.getinfo(“urls.py”) – urlsinfo.filesize – urlsinfo.compress.size.
  • Chiusura archivio: archivio.close().

Danila Autore

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *