파이썬의 shutil
모듈은 파일 및 디렉토리 작업을 위한 유용한 함수들을 제공합니다. 이 모듈은 파일 및 디렉토리 복사, 이동, 삭제 등의 작업을 간단하게 처리할 수 있도록 도와줍니다.
또한, gzip
및 bz2
모듈은 파일의 압축 및 압축 해제를 위한 기능을 제공합니다. 이러한 모듈을 함께 사용하면 파일을 압축하거나 압축 해제하는 작업을 손쉽게 수행할 수 있습니다.
이번 글에서는 shutil
모듈과 gzip
혹은 bz2
모듈의 조합을 사용하여 파일을 압축하고 압축 해제하는 방법에 대해 알아보겠습니다.
파일 압축하기
파일을 압축하기 위해서는 gzip
혹은 bz2
모듈을 사용합니다. gzip
는 Gzip 압축 형식을 지원하며, bz2
는 Bzip2 압축 형식을 지원합니다.
아래는 gzip
모듈을 사용하여 파일을 압축하는 예제 코드입니다.
import gzip
def compress_file(file_path, compressed_file_path):
with open(file_path, 'rb') as f_in:
with gzip.open(compressed_file_path, 'wb') as f_out:
f_out.writelines(f_in)
위 예제에서 compress_file
함수는 file_path
로 지정된 파일을 압축하여 compressed_file_path
로 지정된 경로에 저장합니다.
이와 비슷하게 bz2
모듈을 사용하여 파일을 압축할 수도 있습니다. 아래는 bz2
모듈을 사용하여 파일을 압축하는 예제 코드입니다.
import bz2
def compress_file(file_path, compressed_file_path):
with open(file_path, 'rb') as f_in:
with bz2.open(compressed_file_path, 'wb') as f_out:
f_out.writelines(f_in)
압축 해제하기
파일을 압축 해제하기 위해서는 gzip
혹은 bz2
모듈의 open
함수를 사용하여 압축 파일을 읽고, 원본 파일에 압축을 해제하면 됩니다.
아래는 gzip
모듈을 사용하여 압축 파일을 해제하는 예제 코드입니다.
import gzip
def decompress_file(compressed_file_path, decompressed_file_path):
with gzip.open(compressed_file_path, 'rb') as f_in:
with open(decompressed_file_path, 'wb') as f_out:
f_out.writelines(f_in)
위 예제에서 decompress_file
함수는 compressed_file_path
로 지정된 압축 파일을 읽어 decompressed_file_path
로 지정된 경로에 압축 해제합니다.
bz2
모듈을 사용하여 압축 파일을 압축 해제하는 방법도 비슷합니다. 아래는 bz2
모듈을 사용하여 압축 파일을 해제하는 예제 코드입니다.
import bz2
def decompress_file(compressed_file_path, decompressed_file_path):
with bz2.open(compressed_file_path, 'rb') as f_in:
with open(decompressed_file_path, 'wb') as f_out:
f_out.writelines(f_in)
위 예제 코드에서는 bz2
모듈의 open
함수를 사용하여 압축 파일을 읽고, open
함수를 사용하여 원본 파일에 압축을 해제합니다.
이러한 방식으로 shutil
모듈과 gzip
또는 bz2
모듈을 조합하여 파일을 압축하고 압축 해제할 수 있습니다. 이는 파일 백업, 데이터 압축 등 다양한 상황에서 유용하게 사용할 수 있는 기능입니다.