gzip — gzip 압축 및 압축 해제

이 모듈은 gzip 파일 형식에서 사용하는 DEFLATE 알고리즘으로 바이너리 데이터를 압축하고 압축 해제할 수 있게 합니다. 단발성 compress()/decompress() 도우미와, 기반이 되는 파일 또는 스트림 객체를 둘러싼 스트리밍 GzipFile 래퍼를 제공합니다.

참고

이 모듈의 함수 대신 deflate.DeflateIO를 사용하는 것이 좋습니다. 이는 압축 및 압축 해제에 대한 스트리밍 인터페이스를 제공하여, 압축 데이터를 파일, 소켓 또는 스트림에 읽거나 쓸 때 편리하고 메모리 효율적입니다.

가용성:

  • 이 모듈은 deflate 모듈에서 이미 제공하는 기능을 중복하므로 기본적으로 OpenMV Cam에 포함되지 않습니다.

  • 사본은 micropython-lib에서 설치(또는 커스텀 펌웨어에 프리징)할 수 있습니다(소스). 자세한 내용은 패키지 관리를 참조하십시오. 이 문서는 해당 모듈을 설명합니다.

  • 압축은 내장 deflate 모듈에서 압축을 사용할 수 있는 경우에만 가능합니다. 즉, STM32 기반 OpenMV Cam에서는 불가능합니다(위의 가용성 참고 사항 참조).

함수

gzip.open(filename: str, mode: str, /) GzipFile

GzipFile 인스턴스를 반환하는 내장 open()에 대한 래퍼입니다.

gzip.decompress(data: bytes, /) bytes

data를 bytes 객체로 압축 해제합니다.

gzip.compress(data: bytes, /) bytes

data를 bytes 객체로 압축합니다.

클래스

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 인수는 지원되지 않습니다. fileobjmode는 항상 키워드 인수로 지정해야 합니다.

예제

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 문서 끝부분의 참고 사항을 참조하십시오.