Python의 shutil
모듈은 파일 및 디렉토리 작업을 간편하게 처리할 수 있는 함수와 메서드를 제공합니다. shutil.make_archive()
함수는 지정된 디렉토리의 아카이브 파일을 생성하는데 사용됩니다. 이 함수에는 root_dir
과 base_dir
두 가지 중요한 매개변수가 있습니다. 이 블로그 포스트에서는 root_dir
와 base_dir
매개변수의 사용법 및 차이점에 대해 살펴보겠습니다.
root_dir
매개변수
root_dir
매개변수는 아카이브를 생성할 디렉토리를 지정합니다. 이 디렉토리의 모든 파일과 서브디렉토리가 아카이브에 포함됩니다. 예를 들어, root_dir='/path/to/dir'
로 설정하면 /path/to/dir
디렉토리의 모든 내용이 아카이브에 포함됩니다.
import shutil
shutil.make_archive('/path/to/archive', 'zip', '/path/to/dir')
위의 예제 코드에서 root_dir
매개변수는 /path/to/dir
로 설정되어 있습니다. 따라서 /path/to/dir
의 모든 파일과 서브디렉토리가 아카이브에 포함됩니다.
base_dir
매개변수
base_dir
매개변수는 아카이브 내부에 생성될 디렉토리를 지정합니다. 이 매개변수를 사용하여 아카이브 파일에 포함된 파일과 서브디렉토리가 아카이브 내부의 특정 디렉토리에 위치하도록 할 수 있습니다. 예를 들어, base_dir='my_archive'
로 설정하면 아카이브 내부에 my_archive
디렉토리가 생성되고, 모든 파일과 서브디렉토리가 해당 디렉토리에 위치합니다.
import shutil
shutil.make_archive('/path/to/archive', 'zip', '/path/to/dir', 'my_archive')
위의 예제 코드에서 base_dir
매개변수는 'my_archive'
로 설정되어 있습니다. 따라서 아카이브 내부에 my_archive
디렉토리가 생성되고, /path/to/dir
의 모든 파일과 서브디렉토리가 해당 디렉토리에 위치합니다.
마무리
shutil.make_archive()
함수를 사용할 때에는 root_dir
와 base_dir
매개변수의 차이를 이해하는 것이 중요합니다. root_dir
은 아카이브를 생성할 대상 디렉토리를 지정하고, base_dir
은 아카이브 내부에 생성될 디렉토리를 지정합니다. 이를 통해 원하는 파일 및 디렉토리 구조로 아카이브 파일을 생성할 수 있습니다.