Python의 ZIP 아카이브 기본 모듈인 zipfile을 명령줄에서 실행하여 파일 목록 확인, 생성, 압축 해제, 무결성 검사를 수행한다.
zipfile은 Python Standard Library에 포함된 기본 모듈이다.pip install 없이 설치된 Python 인터프리터로 실행한다.python -m zipfile로 처리하고, 세부 압축 방식이나 암호화 같은 고급 제어가 필요하면 Python API 또는 전용 도구를 사용한다.
zipfile은 Python 기본 모듈이므로 별도 설치가 필요하지 않다. Python이 설치되어 있으면 다음 명령으로 모듈과 CLI 사용 가능 여부를 확인한다.
python --version python -c "import zipfile; print(zipfile.__file__)" python -m zipfile --help
환경에 따라 Python 실행 파일 이름이 python3인 경우 아래처럼 바꿔 실행한다.
python3 -m zipfile --help
python -m zipfile -l archive.zip python -m zipfile -t archive.zip python -m zipfile -c archive.zip file.txt directory/ python -m zipfile -e archive.zip output-directory/
python -m zipfile -l ZIPFILE: 아카이브 멤버 목록 표시python -m zipfile -t ZIPFILE: ZIP 파일 무결성 검사python -m zipfile -c ZIPFILE SOURCE…: 파일 또는 디렉터리로 ZIP 생성python -m zipfile -e ZIPFILE OUTPUT_DIR: 지정 디렉터리에 압축 해제-h, –help: 도움말 표시-l, –list ZIPFILE: 아카이브 멤버 목록 표시-e, –extract ZIPFILE OUTPUT_DIR: 대상 디렉터리에 압축 해제-c, –create ZIPFILE [SOURCE…]: 소스 파일과 디렉터리로 ZIP 생성-t, –test ZIPFILE: ZIP 파일 유효성 검사–metadata-encoding ENCODING: -l, -e, -t에서 멤버 이름 해석에 사용할 인코딩 지정; Python 3.11 이상압축을 풀기 전에 파일 목록과 무결성을 먼저 확인한다.
python -m zipfile --list release.zip python -m zipfile --test release.zip
파일 여러 개를 하나의 아카이브로 만든다.
python -m zipfile --create release.zip README.txt dist/
디렉터리를 전달하면 해당 디렉터리와 하위 항목이 포함된다.
mkdir -p extracted python -m zipfile --extract release.zip extracted/
UTF-8 플래그가 없는 오래된 ZIP의 멤버 이름이 깨질 때 원래 코드 페이지를 지정한다.
python -m zipfile --metadata-encoding cp949 --list legacy.zip python -m zipfile --metadata-encoding cp949 --extract legacy.zip extracted/
ZIP에 기록된 UTF-8 플래그가 있으면 그 값이 –metadata-encoding보다 우선한다.
–metadata-encoding은 Python 3.11에서 추가되었다.python 또는 python3일 수 있다.zipfile은 멀티파트 ZIP 생성을 지원하지 않으며, 암호화된 ZIP을 읽을 수는 있지만 암호화된 ZIP을 생성하지는 않는다.python -m zipfile 실행 명령, 옵션, 예제, 안전 주의를 추가.