프로그래밍/Python

[Python] os.mkdir() 폴더 생성시, "FileNotFoundError: [WinError 3] 지정된 경로를 찾을 수 없습니다" 오류 대처

채윤아빠 2021. 4. 9. 23:12
728x90
반응형

문제점 및 증상

폴더 생성을 위하여 다음과 같이 코드를 작성하였습니다.


img_path = current_app.root_path + '/static/img/receipts/' + datetime.datetime.now().strftime('%Y/%m/')
if not os.path.exists(img_path):
    os.mkdir(img_path)

폴더를 생성하는 과정에 다음과 같은 오류가 발생하였습니다.


  File "D:\Dev\Web\accounting\server\app\controllers\api\receipt_file.py", line 28, in post
    os.mkdir(img_path)
FileNotFoundError: [WinError 3] 지정된 경로를 찾을 수 없습니다: 'D:\\Dev\\Web\\accounting\\server/static/img/receipts/2021/04/'

해결 방법

os.mkdir() 함수는 "mkdir"과 마찬가지로 생성하려는 폴더의 부모 폴더가 존재해야만 합니다.

위에서 발생한 오류는 "/static/img/receipts/" 까지는 폴더가 생성되어 있었으나, 그 아래에 "2021/", "2021/04/" 두 단계의 폴더를 생성해야 하는데, os.mkdir() 함수에서는 지원되지 않는 기능입니다.

os.mkdir() 함수 대신에 os.makedirs()를 이용하면 중간에 생성되지 않은 폴더까지 모두 생성해 줍니다.


img_path = current_app.root_path + '/static/img/receipts/' + datetime.datetime.now().strftime('%Y/%m/')
if not os.path.exists(img_path):
    os.makedirs(img_path)