[파이썬] shutil과 `os` 모듈의 조합 사용하기

파이썬에서 파일과 디렉토리 작업을 수행해야 할 때, shutilos 모듈은 매우 유용한 도구입니다. shutil은 파일 및 디렉토리 작업을 위한 고수준 인터페이스를 제공하고, os 모듈은 운영체제와 상호작용하기 위한 다양한 함수를 제공합니다. 이 두 모듈을 함께 사용하면 파일 및 디렉토리의 이동, 복사, 삭제 등 다양한 작업을 간편하게 수행할 수 있습니다.

파일 복사하기

shutil 모듈의 copy 함수를 사용하여 파일을 복사할 수 있습니다. 다음은 file.txt 파일을 new_file.txt로 복사하는 예제 코드입니다.

import shutil

shutil.copy('file.txt', 'new_file.txt')

디렉토리 복사하기

디렉토리를 복사해야 할 때에도 shutil 모듈을 사용할 수 있습니다. copytree 함수를 사용하여 디렉토리를 재귀적으로 복사할 수 있습니다. 다음은 source_dir 디렉토리를 target_dir로 복사하는 예제 코드입니다.

import shutil

shutil.copytree('source_dir', 'target_dir')

파일 이동하기

shutil 모듈의 move 함수를 사용하여 파일을 이동할 수 있습니다. move 함수는 파일을 복사한 뒤 원본 파일을 삭제하기 때문에, 파일을 이동하는 데 사용하기에 적합합니다. 다음은 file.txt 파일을 new_folder 디렉토리로 이동하는 예제 코드입니다.

import shutil

shutil.move('file.txt', 'new_folder/file.txt')

디렉토리 이동하기

디렉토리를 이동할 때에도 shutil 모듈을 사용할 수 있습니다. move 함수를 사용하여 디렉토리를 이동할 수 있습니다. 이때, 대상 디렉토리가 이미 존재해야 합니다. 다음은 source_dir 디렉토리를 target_dir로 이동하는 예제 코드입니다.

import shutil

shutil.move('source_dir', 'target_dir')

파일 및 디렉토리 삭제하기

os 모듈의 remove 함수를 사용하여 파일을 삭제할 수 있습니다. 디렉토리를 삭제할 때는 os 모듈의 rmdir 함수를 사용할 수 있습니다. 하지만 디렉토리를 재귀적으로 삭제해야 할 경우에는 shutil 모듈의 rmtree 함수를 사용하는 것이 더 편리합니다. 다음은 file.txt 파일과 dir 디렉토리를 삭제하는 예제 코드입니다.

import os
import shutil

os.remove('file.txt')
os.rmdir('dir')
shutil.rmtree('dir')

위의 코드에서 rmtree 함수는 dir 디렉토리를 재귀적으로 삭제합니다. 따라서 dir 디렉토리 내에 있는 모든 파일과 디렉토리를 삭제합니다.

마무리

shutilos 모듈은 파일 및 디렉토리 작업을 수행할 때 매우 유용한 기능을 제공합니다. 이 두 모듈을 함께 사용하여 파일 복사, 디렉토리 복사, 파일 이동, 디렉토리 이동, 파일 및 디렉토리 삭제 등 다양한 작업을 쉽게 수행할 수 있습니다.