gzip --- kompresi & dekompresi gzip¶
Modul ini memungkinkan kompresi dan dekompresi data biner dengan algoritma DEFLATE yang digunakan oleh format berkas gzip. Modul ini menyediakan pembantu sekali-jalan compress()/decompress() dan pembungkus streaming GzipFile di sekitar objek berkas atau stream yang mendasarinya.
Catatan
Lebih baik gunakan deflate.DeflateIO alih-alih fungsi dalam modul ini karena menyediakan antarmuka streaming ke kompresi dan dekompresi yang nyaman dan lebih efisien memori saat bekerja dengan membaca atau menulis data terkompresi ke berkas, soket, atau stream.
Ketersediaan:
Modul ini tidak disertakan pada OpenMV Cam secara default, karena menduplikasi fungsionalitas yang sudah disediakan oleh modul
deflate.Salinannya dapat diinstal (atau dibekukan ke dalam firmware kustom) dari micropython-lib (sumber). Lihat Manajemen paket untuk informasi lebih lanjut. Dokumentasi ini mendeskripsikan modul tersebut.
Kompresi hanya tersedia jika kompresi tersedia dalam modul bawaan
deflate-- yaitu, tidak pada OpenMV Cam berbasis STM32 (lihat catatan ketersediaannya di atas).
Fungsi¶
Kelas¶
- class gzip.GzipFile(*, fileobj, mode: str)¶
Kelas ini dapat digunakan untuk membungkus fileobj yang merupakan objek seperti stream apa pun seperti berkas, soket, atau stream (termasuk
io.BytesIO). Kelas ini sendiri merupakan stream dan mengimplementasikan metode read/readinto/write/close standar.Ketika argumen mode adalah
"rb", pembacaan dari instans GzipFile akan mendekompresi data dalam stream yang mendasarinya dan mengembalikan data yang telah didekompresi.Jika dukungan kompresi diaktifkan maka argumen mode dapat disetel ke
"wb", dan penulisan ke instans GzipFile akan dikompres dan ditulis ke stream yang mendasarinya.Secara default kelas GzipFile akan membaca dan menulis data menggunakan format berkas gzip, termasuk header dan footer dengan checksum dan ukuran jendela 512 byte.
Argumen file, compresslevel, dan mtime tidak didukung. fileobj dan mode harus selalu ditentukan sebagai argumen kata kunci.
Contoh¶
Kasus penggunaan umum untuk gzip.GzipFile adalah membaca atau menulis berkas terkompresi dari penyimpanan:
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)
Untuk panduan tentang bekerja dengan sumber gzip dan memilih ukuran jendela lihat catatan di akhir dokumentasi deflate.