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