[python] 파이썬으로 데이터 압축 및 압축 해제 처리하기
파이썬을 사용하면 데이터를 효과적으로 압축하고 해제할 수 있는 여러 가지 방법이 있습니다. 데이터를 압축하면 디스크 공간을 절약하고 데이터 전송 시간을 단축할 수 있습니다. 여기에서는 파이썬에서 데이터를 압축하고 압축을 해제하는 여러 가지 방법과 예제를 살펴보겠습니다.
1. gzip 모듈 활용
gzip
모듈을 사용하면 데이터를 gzip 형식으로 압축하고 압축을 해제할 수 있습니다.
import gzip
# 데이터를 gzip 파일로 압축
with open('file.txt', 'rb') as f_in:
with gzip.open('file.txt.gz', 'wb') as f_out:
f_out.writelines(f_in)
# gzip 파일을 해제
with gzip.open('file.txt.gz', 'rb') as f_in:
with open('file.txt', 'wb') as f_out:
for line in f_in:
f_out.write(line)
2. zipfile 모듈 활용
zipfile
모듈은 여러 파일 및 디렉토리를 압축하고 해제하는 데 사용됩니다.
import zipfile
# 파일 및 디렉토리를 zip 파일로 압축
with zipfile.ZipFile('archive.zip', 'w') as zipf:
zipf.write('file1.txt')
zipf.write('file2.txt')
zipf.write('dir1')
# zip 파일을 해제
with zipfile.ZipFile('archive.zip', 'r') as zipf:
zipf.extractall('extracted_folder')
3. tarfile 모듈 활용
tarfile
모듈은 tar 파일의 압축 및 해제 기능을 제공합니다.
import tarfile
# 파일 및 디렉토리를 tar 파일로 압축
with tarfile.open('archive.tar.gz', 'w:gz') as tar:
tar.add('file1.txt')
tar.add('dir1')
# tar 파일을 해제
with tarfile.open('archive.tar.gz', 'r:gz') as tar:
tar.extractall('extracted_folder')
결론
파이썬에서는 gzip
, zipfile
, tarfile
모듈을 활용하여 데이터를 효과적으로 압축하고 해제할 수 있습니다. 이러한 모듈을 사용하면 파이썬으로 간단하게 파일 및 디렉토리를 압축 및 해제할 수 있으며, 데이터 처리 및 전송 성능을 향상시킬 수 있습니다.
참고 문헌:
- 파이썬 공식 문서: https://docs.python.org/3/library/index.html
- Real Python: https://realpython.com/working-with-files-in-python/#compression-and-archiving
- GeeksforGeeks: https://www.geeksforgeeks.org/working-zip-files-python/