Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬에서 디렉토리가 존재하지 않을 때 생성하는 방법

파이썬다운 방식: 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: 현대적이고 가독성이 높은 경로 처리 방식

상황에 맞는 방법을 선택하면 디렉토리 존재 여부를 걱정하지 않고 안전하게 폴더를 생성할 수 있습니다.