파이썬의 shutil
은 파일 및 디렉토리의 복사, 이동, 삭제 등 다양한 파일 작업을 수행하는 유용한 모듈입니다. 이제 shutil
을 사용하여 서로 다른 압축 포맷을 사용하여 디렉토리를 압축하는 방법을 알아보겠습니다.
zip 포맷으로 디렉토리 압축하기
zip
은 가장 널리 사용되는 압축 포맷 중 하나로, 여러 파일 및 디렉토리를 하나의 압축 파일로 묶을 수 있습니다. 다음은 shutil
을 사용하여 zip
포맷으로 디렉토리를 압축하는 예제 코드입니다.
import shutil
def zip_directory(directory_path, output_path):
shutil.make_archive(output_path, 'zip', directory_path)
# 사용 예시
zip_directory('/path/to/source_directory', '/path/to/output_directory/archive.zip')
위의 코드에서 shutil.make_archive()
함수는 지정한 디렉토리를 압축하여 output_path
에 정의된 경로와 파일 이름으로 생성합니다.
tar 포맷으로 디렉토리 압축하기
tar
는 다수의 파일과 디렉토리를 하나의 파일로 묶을 수 있는 압축 포맷입니다. shutil
은 tar
포맷을 지원하는 shutil.make_archive()
함수를 제공합니다. 다음은 tar
포맷으로 디렉토리를 압축하는 예제 코드입니다.
import shutil
def tar_directory(directory_path, output_path):
shutil.make_archive(output_path, 'tar', directory_path)
# 사용 예시
tar_directory('/path/to/source_directory', '/path/to/output_directory/archive.tar')
위의 코드에서 shutil.make_archive()
함수는 자동으로 .tar
확장자를 파일 이름에 추가합니다.
tar.gz 포맷으로 디렉토리 압축하기
tar.gz
는 tar
로 묶은 파일을 gzip 압축한 형태의 압축 포맷입니다. shutil
을 사용하여 tar.gz
포맷으로 디렉토리를 압축하는 방법은 다음과 같습니다.
import shutil
def tar_gz_directory(directory_path, output_path):
shutil.make_archive(output_path, 'gztar', directory_path)
# 사용 예시
tar_gz_directory('/path/to/source_directory', '/path/to/output_directory/archive.tar.gz')
위의 코드에서 shutil.make_archive()
함수의 두 번째 인자를 gztar
로 설정하여 tar.gz
형식으로 압축을 수행합니다.
정리
Python의 shutil
모듈을 사용하여 디렉토리를 다른 압축 포맷으로 압축하는 방법을 알아보았습니다. zip
, tar
, tar.gz
외에도 shutil
은 다른 압축 포맷도 지원합니다. 필요에 따라 압축 포맷을 선택하여 shutil
을 사용하여 디렉토리를 압축할 수 있습니다.