Modulo GZIP Python

Modulo GZIP Python

In questa lezione, studieremo su come possiamo usare Python gzip Modulo da leggere e scrivere nei file compressi in Python. La più grande caratteristica che questo modulo ci fornisce è che possiamo trattare i file compressi come oggetti di file normali che ci salvano dalla complessità della gestione dei file e del loro ciclo di vita nel nostro codice e ci consente di concentrarci sulla logica del core business del programma.IL gzip Il modulo ci fornisce quasi le stesse funzionalità dei programmi GNU come Gunzip E gzip.

Scrivere file compressi con open ()

Inizieremo con un esempio di base in cui possiamo creare un file GZIP e scrivere alcuni dati in esso. Per questo, dobbiamo creare un file e aprirlo con la modalità di scrittura in modo che i dati possano essere inseriti in esso. Diamo un'occhiata a un programma di esempio con cui possiamo scrivere dati in un file GZIP:

importare gzip
importare io
Import OS
output_file = 'linxhint_demo.TXT.gz '
write_mode = 'wb'
con gzip.Open (output_file, write_mode) come output:
con io.Textiowrapper (output, codifica = 'utf-8') come codifica:
codificare.Scrivi ('possiamo scrivere tutto ciò che vogliamo al file.\N')
Stampa (output_file,
'contiene', sistema operativo.STAT (output_file).st_size, "byte")
sistema operativo.System ('File -b - -mime '.Formato (output_file))

Ecco cosa torniamo con questo comando:

Scrivere al file zip

Se ora dai un'occhiata alla struttura delle cartelle in cui hai eseguito questo script, dovrebbe esserci un nuovo file chiamato con quello che abbiamo fornito nel nostro programma sopra.

Scrivere più righe in un file compresso

Possiamo anche scrivere più righe o in realtà qualsiasi numero di righe nel nostro file GZIP in modo molto simile come abbiamo fatto nell'esempio precedente. Per rendere questo esempio diverso, utilizzeremo anche il modulo ITERTURS. Diamo un'occhiata al programma di esempio:

importare gzip
importare io
Import OS
Importa iTtools
output_file = 'linxhint_demo.TXT.gz '
write_mode = 'wb'
con gzip.Open (output_file, write_mode) come output:
con io.Textiowrapper (output, codifica = 'utf-8') come ENC:
enc.scritti (
ITTEROOLS.Ripeti ('Linuxhint, ripetendo la stessa riga!.\ n ', 10)
)
sistema operativo.System ('Gzcat linxhint_demo.TXT.GZ ')

Vediamo l'output per questo comando:

Scrivere più righe

Leggere i dati compressi

Possiamo anche leggere il file compresso che abbiamo creato nell'ultimo esempio usando il modulo GZIP con una chiamata molto semplice a aprire funzione:

importare gzip
importare io
Import OS
file_name = 'linxhint_demo.TXT.gz '
file_mode = 'rb'
con gzip.Apri (file_name, file_mode) come input_file:
con io.Textiowrapper (input_file, codifica = 'utf-8') come dec:
Stampa (dec.Leggere())

Ecco cosa torniamo con questo comando:

Leggendo un file GZIP

Lettura di flussi

A causa del fatto che i file di testo possono essere di dimensioni molto grandi, è intelligente aprire questi file in un flusso anziché caricare il file completo in un singolo oggetto che occupa molta memoria del sistema e in alcuni casi può persino causare il processo per schiantarsi completamente. Diamo un'occhiata a un programma di esempio che ha letto il file compresso dato in un flusso:

importare gzip
da Io import bytesio
import binascii
modalità_write = 'wb'
modalità_read = 'rb'
non_compressed = b'repeato riga x tempi.\ n ' * 8
print ('Dati non compressi:', len (non_comprimed))
Stampa (non_comprimed)
buf = bytesio ()
con gzip.Gzipfile (modalità = modalità_write, fileobj = buf) come file:
file.Scrivi (non_comprimed)
compresso = buf.getValue ()
print ('Dati compressi:', len (compresso))
Stampa (binascii.esaflify (compresso))
in_buffer = bytesio (compresso)
con gzip.Gzipfile (modalità = modalità_read, fileobj = in_buffer) come file:
read_data = file.Leggi (Len (non_comprimed))
print ('\ nread It Again:', len (read_data))
Stampa (read_data)

Vediamo l'output per questo comando:

Leggendo il file gzip in un flusso

Sebbene il programma fosse un po 'lungo, in realtà abbiamo appena usato i moduli Python apri il file e trasmettono il contenuto sulla console con un oggetto lettore bufferico.

Conclusione

In questa lezione, abbiamo esaminato come possiamo utilizzare il modulo GZIP Python per comprimere e decomprimere i file in Python. La caratteristica più grande che questa libreria ci fornisce è che possiamo trattare i file compressi come oggetti di file normali.

Leggi di più post basati su Python qui.