bzip2이라는 확장자가 있다. gzip과 비슷하게 하나의 파일만을 압축할 수 있으며, bz2라는 확장자명을 가진다. (오 모듈 이름이랑 똑같다.) 압축 과정은 다른 정보보안 이론과정에 자세하게 소개하는 것으로 하고 Python에서 bz2의 사용법을 알아보자
파일 압축/해제관련
- bz2.open(filename, mode="rb"...) : 파일 혹은 데이터를 바이트 혹은 텍스트로 오픈하는 모드이다. 리턴 값은 File 객체이다.
- bz2.BZ2FILE(filename, mode="r") : 위에 객체 반환과 같으나, 무조건 binary로 open 한다.
증분 압축/해제관련
- bz2.BZ2Compressor(compresslevel=9) : 증분 압축기 객체를 반환한다. compress(data)와 flush()를 사용하고 이 객체는 사라진다.
- bz2.BZ2Decompressor() : 증분 압축 해체기 객체를 반환한다. decompress(data)를 통해서 압축 해제된 data를 바이트 열로 가져올 수 있다.
일괄 압축/해제관련
- bz2.compress(data,xompresslevel=9) : 일괄 압축을 수행한다.
- bz2.decompress(data) : 압축된 data를 압축 해제해서 바이트 열을 반환한다.
사용 예제
import bz2
### 일괄 압축으로 압축하여 target.bz2에 작성
raw = b"I Love Python"
with open("target.bz2","wb") as f:
f.write(bz2.compress(raw))
### 압축된 target.bz2 에서 문자열 읽기
with open("target.bz2","rb") as f:
data = f.read()
print(bz2.decompress(data).decode())
* 일괄 압축은 데이터를 인수로 주면서 바로 압축이 수행되고, 증분 압축방식은 압축기 개체가 생성되고 나서 데이터가 추가되는 방식이다.
출처 : https://docs.python.org/ko/3/library/bz2.html#incremental-de-compression
'Python > Python 모듈탐구' 카테고리의 다른 글
[Python] - 모듈탐구 pyautogui - Python 폴터가이스트 (8) | 2021.06.30 |
---|---|
[Python] - 모듈탐구 calendar - 야 오늘 며칠이냐? (0) | 2021.05.25 |
[Python] - 모듈탐구 getmac - Python으로 MAC주소 확인하기 (0) | 2021.04.27 |
[Python] - 모듈탐구 pydoc - Python의 백과사전 (0) | 2021.04.25 |
[Python] - 모듈탐구 webbrowser - 인터넷세상에 온걸 환영해 (0) | 2021.04.25 |