gzip — gzip 압축 및 압축 해제#
이 모듈은 gzip 파일 형식에서 사용하는 DEFLATE 알고리즘으로 바이너리 데이터를 압축하고 압축 해제할 수 있게 합니다. 단발성 compress()/decompress() 도우미와, 기반이 되는 파일 또는 스트림 객체를 둘러싼 스트리밍 GzipFile 래퍼를 제공합니다.
참고
이 모듈의 함수 대신 deflate.DeflateIO를 사용하는 것이 좋습니다. 이는 압축 및 압축 해제에 대한 스트리밍 인터페이스를 제공하여, 압축 데이터를 파일, 소켓 또는 스트림에 읽거나 쓸 때 편리하고 메모리 효율적입니다.
가용성:
이 모듈은
deflate모듈에서 이미 제공하는 기능을 중복하므로 기본적으로 OpenMV Cam에 포함되지 않습니다.사본은 micropython-lib에서 설치(또는 커스텀 펌웨어에 프리징)할 수 있습니다(소스). 자세한 내용은 패키지 관리를 참조하십시오. 이 문서는 해당 모듈을 설명합니다.
압축은 내장
deflate모듈에서 압축을 사용할 수 있는 경우에만 가능합니다. 즉, STM32 기반 OpenMV Cam에서는 불가능합니다(위의 가용성 참고 사항 참조).
함수#
클래스#
- class gzip.GzipFile(*, fileobj, mode: str)#
이 클래스는 파일, 소켓 또는 스트림(
io.BytesIO포함)과 같은 모든 스트림 유사 객체인 fileobj를 래핑하는 데 사용할 수 있습니다. 이 클래스 자체가 스트림이며 표준 read/readinto/write/close 메서드를 구현합니다.mode 인수가
"rb"이면 GzipFile 인스턴스에서의 읽기는 기반 스트림의 데이터를 압축 해제하여 압축 해제된 데이터를 반환합니다.압축 지원이 활성화되어 있으면 mode 인수를
"wb"로 설정할 수 있으며, GzipFile 인스턴스에 대한 쓰기는 압축되어 기반 스트림에 기록됩니다.기본적으로 GzipFile 클래스는 체크섬이 있는 헤더 및 푸터와 512바이트 윈도우 크기를 포함하는 gzip 파일 형식을 사용하여 데이터를 읽고 씁니다.
file, compresslevel, mtime 인수는 지원되지 않습니다. fileobj와 mode는 항상 키워드 인수로 지정해야 합니다.
예제#
gzip.GzipFile의 일반적인 사용 사례는 저장소에서 압축 파일을 읽거나 쓰는 것입니다:
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 소스 작업 및 윈도우 크기 선택에 대한 지침은 deflate 문서 끝부분의 참고 사항을 참조하십시오.