데이터 압축과 아카이빙
데이터 압축과 아카이빙 (Data Compression and Archiving)
이 장에서 설명하는 모듈들은 zlib, gzip, bzip2, lzma, zstd 알고리즘으로 데이터를 압축하고, ZIP 및 tar 형식의 아카이브를 생성하는 기능을 제공해요.
shutil 모듈이 제공하는 아카이빙 연산도 함께 참고하세요.
압축은 저장 공간을 줄이고 전송 시간을 단축하는 데 필수적이에요.
이 장은 파이썬 표준 라이브러리에서 압축·아카이빙 관련 모듈을 모아 둔 목차 페이지예요.
각 모듈을 간단히 살펴볼게요.
본문
compression 패키지
compression 패키지는 표준 압축 모듈들(bz2, gzip, lzma, zlib)을 재수출하고, 새롭게 compression.zstd(Zstandard 형식과 호환되는 압축)를 제공해요.
이 패키지의 문서는 예외, 압축 파일 읽기/쓰기, 메모리에서 데이터 압축/해제, Zstandard 사전, 고급 매개변수 제어, 기타 다양한 기능과 예제를 다뤄요.
zlib — gzip과 호환되는 압축
zlib 모듈은 압축 라이브러리로, gzip 파일 형식과도 호환돼요.
바이너리 데이터를 압축·해제하는 저수준 함수(compress(), decompress())와 스트리밍 객체를 제공해요.
무손실 압축의 기반이 되는 모듈이에요.
gzip — gzip 파일 지원
gzip 모듈은 gzip 압축 파일을 읽고 씁니다.
open() 함수와 GzipFile 클래스, 커맨드라인 인터페이스와 옵션, 사용 예제를 다뤄요.
텍스트·바이너리 모드 모두를 지원하고, 파일을 압축해서 보관·전송할 때 흔히 사용해요.
bz2 — bzip2 압축 지원
bz2 모듈은 bzip2 알고리즘으로 압축·해제를 지원해요.
파일 (압축)해제, 증분 (압축)해제, 원샷 (압축)해제를 제공하고, 사용 예제를 포함해요.
BZ2File, BZ2Compressor, BZ2Decompressor를 제공해요.
lzma — LZMA 알고리즘 압축
lzma 모듈은 LZMA 알고리즘을 사용하는 압축을 지원해요.
압축 파일 읽기/쓰기, 메모리에서 데이터 압축/해제, 기타 기능, 사용자 정의 필터 체인 지정, 상수, 예제를 다뤄요.
높은 압축률이 필요한 경우에 유용해요.
zipfile — ZIP 아카이브 작업
zipfile 모듈은 ZIP 아카이브를 만들고 읽는 기능을 제공해요.
ZipFile 객체, Path 객체, PyZipFile 객체, ZipInfo 객체, 커맨드라인 인터페이스와 옵션을 다뤄요.
또 압축 해제 함정(파일 자체, 파일 시스템 한계, 리소스 한계, 중단, 추출 기본 동작)에 대한 주의사항도 설명해요.
tarfile — tar 아카이브 파일 읽기/쓰기
tarfile 모듈은 tar 아카이브 파일을 읽고 씁니다.
TarFile 객체, TarInfo 객체, 추출 필터(기본 명명 필터, 필터 오류, 추가 검증 힌트, 이전 파이썬 버전 지원, 상태 유지 추출 필터 예제)를 다뤄요.
커맨드라인 인터페이스와 옵션, 예제(읽기/쓰기), 지원되는 tar 형식, 유니코드 문제를 다뤄요.
파일 시스템 백업·배포에서 흔히 쓰여요.