[파이썬] shutil `shutil.make_archive()`의 `root_dir`와 `base_dir` 매개변수 사용하기

Python의 shutil 모듈은 파일 및 디렉토리 작업을 간편하게 처리할 수 있는 함수와 메서드를 제공합니다. shutil.make_archive() 함수는 지정된 디렉토리의 아카이브 파일을 생성하는데 사용됩니다. 이 함수에는 root_dirbase_dir 두 가지 중요한 매개변수가 있습니다. 이 블로그 포스트에서는 root_dirbase_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_dirbase_dir 매개변수의 차이를 이해하는 것이 중요합니다. root_dir은 아카이브를 생성할 대상 디렉토리를 지정하고, base_dir은 아카이브 내부에 생성될 디렉토리를 지정합니다. 이를 통해 원하는 파일 및 디렉토리 구조로 아카이브 파일을 생성할 수 있습니다.