gzip — gzip kompresija i dekompresija¶
Ovaj modul omogućuje kompresiju i dekompresiju binarnih podataka pomoću DEFLATE algoritma koji koristi gzip format datoteke. Pruža jednokratne pomoćne funkcije compress()/decompress() i strujni GzipFile omotač oko temeljnog objekta datoteke ili toka.
Napomena
Preferirajte korištenje deflate.DeflateIO umjesto funkcija u ovom modulu jer pruža strujno sučelje za kompresiju i dekompresiju koje je praktično i memorijski učinkovitije pri radu s čitanjem ili zapisivanjem komprimiranih podataka u datoteku, utičnicu ili tok.
Dostupnost:
Ovaj modul nije uključen na OpenMV Cam prema zadanim postavkama jer duplicira funkcionalnost koju već pruža modul
deflate.Kopija se može instalirati (ili zamrznuti u prilagođeni ugrađeni program (firmware)) iz micropython-lib (izvor). Za više informacija pogledajte Upravljanje paketima. Ova dokumentacija opisuje taj modul.
Kompresija je dostupna samo ako je kompresija dostupna u ugrađenom modulu
deflate– to jest, ne na OpenMV Cam kamerama temeljenim na STM32 (pogledajte napomenu o dostupnosti gore).
Funkcije¶
Klase¶
- class gzip.GzipFile(*, fileobj, mode: str)¶
Ova klasa može se koristiti za omatanje fileobj koji je bilo koji stream-like objekt poput datoteke, utičnice ili toka (uključujući
io.BytesIO). Sama je tok i implementira standardne metode read/readinto/write/close.Kada je argument mode
"rb", čitanja iz instance GzipFile dekomprimirat će podatke u temeljnom toku i vratiti dekomprimirane podatke.Ako je podrška za kompresiju omogućena, tada se argument mode može postaviti na
"wb", a zapisivanja u instancu GzipFile bit će komprimirana i zapisana u temeljni tok.Prema zadanim postavkama klasa GzipFile čitat će i zapisivati podatke koristeći gzip format datoteke, uključujući zaglavlje i podnožje s kontrolnim zbrojem te veličinom prozora od 512 bajtova.
Argumenti file, compresslevel i mtime nisu podržani. fileobj i mode moraju se uvijek navesti kao imenovani argumenti.
Primjeri¶
Tipičan slučaj uporabe za gzip.GzipFile je čitanje ili zapisivanje komprimirane datoteke iz pohrane:
import gzip
# Reading:
with open("data.gz", "rb") as f:
with gzip.GzipFile(fileobj=f, mode="rb") as g:
# Use g.read(), g.readinto(), etc.
# Same, but using gzip.open:
with gzip.open("data.gz", "rb") as f:
# Use f.read(), f.readinto(), etc.
# Writing:
with open("data.gz", "wb") as f:
with gzip.GzipFile(fileobj=f, mode="wb") as g:
# Use g.write(...) etc
# Same, but using gzip.open:
with gzip.open("data.gz", "wb") as f:
# Use f.write(...) etc
# Write a dictionary as JSON in gzip format, with a
# small (64 byte) window size.
config = { ... }
with gzip.open("config.gz", "wb") as f:
json.dump(config, f)
Za smjernice o radu s gzip izvorima i odabiru veličine prozora pogledajte napomenu na kraju dokumentacije za deflate.