gzip — gzip-pakkaus ja -purku¶
Tämä moduuli mahdollistaa binääridatan pakkaamisen ja purkamisen gzip-tiedostomuodon käyttämällä DEFLATE-algoritmilla. Se tarjoaa kertaluonteiset compress()/decompress() -apufunktiot ja striimaavan GzipFile -kääreen taustalla olevan tiedosto- tai striimiolion ympärille.
Muista
Suosi deflate.DeflateIO -luokan käyttöä tämän moduulin funktioiden sijaan, koska se tarjoaa striimaavan rajapinnan pakkaukseen ja purkuun, mikä on kätevää ja muistitehokkaampaa luettaessa tai kirjoitettaessa pakattua dataa tiedostoon, soketiin tai striimiin.
Saatavuus:
Tätä moduulia ei ole oletuksena mukana OpenMV Camissa, koska se monistaa toiminnallisuuden, jonka
deflate-moduuli jo tarjoaa.Kopion voi asentaa (tai jäädyttää mukautettuun laiteohjelmistoon) micropython-lib -kirjastosta (lähde). Katso lisätietoja kohdasta Pakettien hallinta. Tämä dokumentaatio kuvaa kyseistä moduulia.
Pakkaus on käytettävissä vain, jos pakkaus on käytettävissä sisäänrakennetussa
deflate-moduulissa – toisin sanoen ei STM32-pohjaisissa OpenMV Cameissa (katso sen saatavuushuomautus yllä).
Funktiot¶
Luokat¶
- class gzip.GzipFile(*, fileobj, mode: str)¶
Tällä luokalla voidaan kääriä fileobj, joka on mikä tahansa striimin kaltainen olio, kuten tiedosto, soketti tai striimi (mukaan lukien
io.BytesIO). Se on itse striimi ja toteuttaa standardit read/readinto/write/close-metodit.Kun mode -argumentti on
"rb", lukeminen GzipFile-ilmentymästä purkaa taustalla olevan striimin datan ja palauttaa puretun datan.Jos pakkaustuki on käytössä, mode -argumentti voidaan asettaa arvoon
"wb", jolloin kirjoitukset GzipFile-ilmentymään pakataan ja kirjoitetaan taustalla olevaan striimiin.Oletuksena GzipFile-luokka lukee ja kirjoittaa dataa gzip-tiedostomuotoa käyttäen, mukaan lukien otsikko ja alatunniste tarkistussummalla sekä 512 tavun ikkunakoolla.
Argumentteja file, compresslevel ja mtime ei tueta. fileobj ja mode on aina määritettävä avainsana-argumentteina.
Esimerkkejä¶
Tyypillinen gzip.GzipFile -luokan käyttötapaus on pakatun tiedoston lukeminen tai kirjoittaminen tallennustilasta:
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)
Ohjeita gzip-lähteiden kanssa työskentelyyn ja ikkunakoon valintaan löytyy huomautuksesta kohdassa deflate-dokumentaation loppu.