파이썬에서 파일과 디렉토리 작업을 수행해야 할 때, shutil
과 os
모듈은 매우 유용한 도구입니다. 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
디렉토리 내에 있는 모든 파일과 디렉토리를 삭제합니다.
마무리
shutil
과 os
모듈은 파일 및 디렉토리 작업을 수행할 때 매우 유용한 기능을 제공합니다. 이 두 모듈을 함께 사용하여 파일 복사, 디렉토리 복사, 파일 이동, 디렉토리 이동, 파일 및 디렉토리 삭제 등 다양한 작업을 쉽게 수행할 수 있습니다.