[Python] 파이썬 폴더 생성, 폴더 자동 생성, 폴더 있는지 확인하기(os.mkdir, os.makedirs, os.path.isdir)
파이썬 폴더 생성하는 함수에 대해 알아보자.
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")
같은 코드를 그대로 다시 실행하면
import os
os.makedirs("./test_dir1/test_dir2/test_dir3", exist_ok=True)
exist_ok=True를 해주면 exception error가 발생하지 않고, 폴더가 존재하지 않을 때만 폴더를 생성시켜준다.