gzip — gzip sıkıştırma ve açma¶
Bu modül, gzip dosya formatı tarafından kullanılan DEFLATE algoritması ile ikili verilerin sıkıştırılmasına ve açılmasına olanak tanır. Tek seferlik compress()/decompress() yardımcılarını ve temel bir dosya veya akış nesnesi etrafında akış tabanlı bir GzipFile sarmalayıcısı sağlar.
Not
Bu modüldeki fonksiyonlar yerine deflate.DeflateIO kullanmayı tercih edin; çünkü sıkıştırılmış verileri bir dosyaya, sokete veya akışa okurken ya da yazarken kullanışlı ve daha bellek açısından verimli olan, sıkıştırma ve açma için bir akış arayüzü sağlar.
Kullanılabilirlik:
Bu modül,
deflatemodülü tarafından zaten sağlanan işlevselliği tekrarladığı için varsayılan olarak OpenMV Cam üzerinde bulunmaz.micropython-lib (kaynak) üzerinden bir kopya kurulabilir (veya özel aygıt yazılımına dondurulabilir). Daha fazla bilgi için bkz. Paket yönetimi. Bu belge o modülü açıklar.
Sıkıştırma yalnızca yerleşik
deflatemodülünde sıkıştırma mevcutsa kullanılabilir – yani STM32 tabanlı OpenMV Cam’lerde değil (yukarıdaki kullanılabilirlik notuna bakın).
Fonksiyonlar¶
Sınıflar¶
- class gzip.GzipFile(*, fileobj, mode: str)¶
Bu sınıf, bir dosya, soket veya akış (
io.BytesIOdahil) gibi herhangi bir akış benzeri nesne olan bir fileobj‘i sarmak için kullanılabilir. Kendisi bir akıştır ve standart read/readinto/write/close metotlarını uygular.mode argümanı
"rb"olduğunda, GzipFile örneğinden okumalar temel akıştaki verileri açar ve açılmış veriyi döndürür.Sıkıştırma desteği etkinse mode argümanı
"wb"olarak ayarlanabilir ve GzipFile örneğine yazmalar sıkıştırılarak temel akışa yazılır.Varsayılan olarak GzipFile sınıfı, sağlama toplamı içeren bir başlık ve altbilgi ile 512 baytlık bir pencere boyutu dahil olmak üzere gzip dosya formatını kullanarak veri okur ve yazar.
file, compresslevel ve mtime argümanları desteklenmez. fileobj ve mode her zaman anahtar kelime argümanları olarak belirtilmelidir.
Örnekler¶
gzip.GzipFile için tipik bir kullanım durumu, depolamadan sıkıştırılmış bir dosyayı okumak veya yazmaktır:
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)
gzip kaynaklarıyla çalışma ve pencere boyutunu seçme konusunda rehberlik için deflate belgelerinin sonundaki nota bakın.