파이썬다운 방식: EAFP 관용구 활용하기
파이썬으로 프로그래밍할 때는 일반적으로 파이썬다운(Pythonic) 코드를 작성하는 것이 좋습니다. 파이썬의 대표적인 관용구 중 하나가 바로 EAFP(Easier to Ask Forgiveness than Permission), 즉 "허락을 구하는 것보다 용서를 구하는 것이 쉽다"입니다. 이 방식에 따르면 디렉토리를 일단 생성해 보고, 이미 존재하는 경우 발생하는 오류를 예외 처리로 잡아내면 됩니다.
EAFP 방식 예제
import os, errno
try:
os.makedirs('my_folder')
except OSError as e:
# 오류가 '이미 존재함'이 아니라면 다시 예외를 발생시키고,
# 그렇다면 그대로 계속 진행
if e.errno != errno.EEXIST:
raise
# 이제 my_folder를 자유롭게 사용하면 됩니다더 간단한 방법: exist_ok 매개변수 사용
파이썬 3.2 이상에서는 os.makedirs() 함수의 exist_ok 매개변수를 사용하면 try/except 없이도 훨씬 간결하게 처리할 수 있습니다.
import os
# 디렉토리가 이미 존재해도 오류를 발생시키지 않음
os.makedirs('my_folder', exist_ok=True)pathlib 모듈 활용하기
파이썬 3.4부터 도입된 pathlib 모듈을 사용하면 객체 지향적인 방식으로 경로를 더 깔끔하게 다룰 수 있습니다.
from pathlib import Path
Path('my_folder').mkdir(parents=True, exist_ok=True)parents=True 옵션은 필요한 경우 상위 디렉토리까지 한 번에 생성해 주며, exist_ok=True는 디렉토리가 이미 존재해도 오류 없이 그대로 넘어갑니다.
정리
- EAFP 방식: try/except로 오류를 잡아 처리하는 전통적인 파이썬 관용구
- exist_ok=True: 코드를 가장 간결하게 만들어 주는 권장 방법
- pathlib: 현대적이고 가독성이 높은 경로 처리 방식
상황에 맞는 방법을 선택하면 디렉토리 존재 여부를 걱정하지 않고 안전하게 폴더를 생성할 수 있습니다.