프로그래밍/Python

[Python] 파이썬 폴더 생성, 폴더 자동 생성, 폴더 있는지 확인하기(os.mkdir, os.makedirs, os.path.isdir)

UnaUna 2023. 3. 16. 21:13
반응형

파이썬 폴더 생성하는 함수에 대해 알아보자.

 

1. os.mkdir

입력한 경로에 폴더가 생성된다. 아래 코드의 경우 실행을 하면 현재 디렉토리에 test_dir이라는 폴더가 생성된다.

import os

os.mkdir('./test_dir')

 

주의할 점은 만약 상위 폴더가 존재하지 않으면 아래와 같이 FileNotFoundError를 날린다.

 

 

또한, 폴더가 이미 존재하고 있는데 다시 생성하려고 하면 아래와 같은 FileExistsError 에러를 날린다.

 

 

이를 방지하기 위해서는 생성하기 전에 폴더가 존재하는지 체크하는 방법

os.makedirs를 사용하는 방법이 있다. os.makedirs는 아래 설명을 참고하면 된다.

 

os.path.isdir("") - 폴더가 존재하는지 체크하는 방법

os.path.isdir("") 함수는 폴더가 존재하면 True를 존재하지 않으면 False를 반환한다.

import os

if not os.path.isdir("./test_dir1"):
    os.mkdir('./test_dir1')

2. os.makedirs

os.mkdir과 같이 폴더를 생성해주는 함수이다. 차이점은 os.mkdir은 상위 폴더가 존재하지 않으면 FileNotFoundError가 발생하게 된다.(위 예시 참고)

 

os.makedirs로 생성하게 되면 존재하지 않은 폴더는 자동 생성된다.

또한, 옵션인 exist_ok를 True로 설정하게 되면 기존에 폴더가 존재해도 FileExistsError가 발생하지 않고 

폴더가 존재하지 않을때만 폴더를 생성해준다.

 

import os

os.makedirs("./test_dir1/test_dir2/test_dir3")

하위 폴더까지 자동으로 생성

같은 코드를 그대로 다시 실행하면

 

같은 코드를 다시 실행하면 파일이 이미 있어서 exception error가 발생한다.

 

import os

os.makedirs("./test_dir1/test_dir2/test_dir3", exist_ok=True)

exist_ok=True를 해주면 exception error가 발생하지 않고, 폴더가 존재하지 않을 때만 폴더를 생성시켜준다.

반응형