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)
'프로그래밍 > Python' 카테고리의 다른 글
파이썬의 장점 / 단점 (0) | 2021.04.21 |
---|---|
문자열을 날짜로 변환하는 방법 (0) | 2021.04.17 |
[python] len() 함수 vs count() 메소드 (0) | 2021.04.06 |
[Python] "Unicode-objects must be encoded before hashing" 오류 대처법 (0) | 2021.02.02 |
datetime 다루기 (날짜 연산 및 timezone) (0) | 2020.12.23 |