gzip — gzip tömörítés és kicsomagolás¶
Ez a modul lehetővé teszi a bináris adatok tömörítését és kicsomagolását a gzip fájlformátum által használt DEFLATE algoritmussal. Egylépéses compress()/decompress() segédfüggvényeket és egy folyamszerű (streaming) GzipFile csomagolót biztosít egy mögöttes fájl- vagy folyamobjektum köré.
Megjegyzés
Inkább a deflate.DeflateIO osztályt használd az ebben a modulban lévő függvények helyett, mivel az folyamszerű (streaming) interfészt biztosít a tömörítéshez és kicsomagoláshoz, ami kényelmes és memóriahatékonyabb, amikor tömörített adatokat olvasol vagy írsz fájlba, socketbe vagy folyamba.
Elérhetőség:
Ez a modul alapértelmezetten nincs benne az OpenMV Cam-ben, mivel olyan funkcionalitást duplikál, amelyet a
deflatemodul már biztosít.Egy másolat telepíthető (vagy egyéni firmware-be befagyasztható) a micropython-lib-ből (forrás). További információkért lásd: Csomagkezelés. Ez a dokumentáció azt a modult írja le.
A tömörítés csak akkor érhető el, ha a beépített
deflatemodulban elérhető a tömörítés – azaz nem az STM32-alapú OpenMV Cam-eken (lásd a fenti elérhetőségi megjegyzést).
Függvények¶
Osztályok¶
- class gzip.GzipFile(*, fileobj, mode: str)¶
Ez az osztály egy fileobj becsomagolására használható, amely bármilyen folyamszerű objektum lehet, például fájl, socket vagy folyam (beleértve az
io.BytesIO-t is). Maga is egy folyam, és implementálja a szabványos read/readinto/write/close metódusokat.Ha a mode argumentum értéke
"rb", a GzipFile példányból való olvasások kicsomagolják a mögöttes folyamban lévő adatokat, és kicsomagolt adatokat adnak vissza.Ha a tömörítési támogatás engedélyezve van, a mode argumentum beállítható
"wb"-re, és a GzipFile példányba történő írások tömörítve kerülnek a mögöttes folyamba.Alapértelmezetten a GzipFile osztály a gzip fájlformátum segítségével olvas és ír adatokat, beleértve a fejlécet és a láblécet ellenőrzőösszeggel, valamint egy 512 bájtos ablakméretet.
A file, compresslevel és mtime argumentumok nem támogatottak. A fileobj és a mode értéket mindig kulcsszavas argumentumként kell megadni.
Példák¶
A gzip.GzipFile tipikus felhasználási esete egy tömörített fájl olvasása vagy írása a tárolóból:
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)
A gzip-forrásokkal való munkáról és az ablakméret megválasztásáról a deflate dokumentáció végén található megjegyzés ad útmutatást.