Python으로 디렉터리를 재귀적으로 생성하기
Python에서 존재하지 않는 상위 폴더까지 한 번에 만들려면 os.makedirs() 함수를 사용하면 됩니다. 이 함수는 지정한 경로에 필요한 모든 중간 디렉터리를 자동으로 순차 생성해 주므로, 폴더를 하나씩 직접 만들 필요가 없습니다.
기본 사용법
import os
os.makedirs('my_folder/another/folder', exists_ok=True)
위 코드를 실행하면 my_folder, 그 안의 another, 그리고 다시 그 안의 folder까지 세 개의 디렉터리가 한 번에 생성됩니다.
exists_ok=True 옵션이 필요한 이유
os.makedirs()는 생성하려는 최종 디렉터리가 이미 존재하면 기본적으로 FileExistsError를 발생시킵니다. 이때 exists_ok=True 옵션을 지정하면 폴더가 이미 있어도 오류 없이 그대로 통과되므로, 스크립트를 여러 번 실행해도 안전하게 동작합니다.
생성 결과 확인하기
디렉터리가 실제로 만들어졌는지 확인하려면 os.path.isdir()을 활용할 수 있습니다.
import os
os.makedirs('my_folder/another/folder', exist_ok=True)
# 디렉터리 생성 여부 확인
print(os.path.isdir('my_folder/another/folder')) # True
참고 사항
exist_ok매개변수는 Python 3.2 이상에서 사용할 수 있습니다.- 최신 스타일의 코드를 선호한다면
pathlib모듈을 사용할 수도 있습니다.from pathlib import Path
Path('my_folder/another/folder').mkdir(parents=True, exist_ok=True)