python의 os 모듈의 listdir함수에 대해 질문있습니다
조회수 190회
안녕하세요 python os 모듈을 이용한 예제를 작업하던 도중에
궁금한점이 있어 질문드립니다.
#파일 경로 설정
file_der1 = 'C:/Users/maker01/Downloads/a'
file_der2 = 'C:/Users/maker01/Downloads/b'
file_der3 = 'C:/Users/maker01/Downloads/c'
#폴더 당 파일 목록을 list 변수에 저장
file_list1 = os.listdir(file_der1)
file_list2 = os.listdir(file_der2)
file_list3 = os.listdir(file_der3)
위처럼 특정 특정 위치에 있는 a, b, c라는 폴더 안에 들어 있는
파일 목록을 리스트 변수로 긁어오기 위해 os 모듈의 listdir을
사용했는데 해당하는 경로가 없을 땐 해당 줄에서 오류가 나면서 동작 자체가 멈춰버리더라구요
혹시 관련 내용으로 오류가 발생해도 오류 발생한건 무시하고 계속 코드를 진행시킬 수 있는 방법을 알 수 있을까요?
2 답변
-
먼저 그 위치에 파일이 있는지 확인하는 것이 필요해요.
이 경우에는 os.path.exists 함수를 이용해주는 편이 좋겠습니다.
import os.path 를 해주고, os.path.exists(file_der1 ~ 3) 로 경로에 파일이 있는지 체크를 해준 뒤 list 변수에 집어 넣으면 되겠죠?
아 그리고 파이썬은 이미 만들어져있는 디렉토리가 아니라면 파일경로 에러를 띄우게 됩니다. 유의 하셔서 미리 디렉토리가 만들어져있는지 체크하고, 없을 경우엔 디렉토리 만드는 것까지 추가해주시는 편이 좋아보이네요.
도움이 되셨으면 좋아요 한번 눌러주세요~!
아래는 이해를 돕기위한 예시입니다~
import os.path #파일 경로 설정 file_der1 = 'C:/Users/maker01/Downloads/a' file_der2 = 'C:/Users/maker01/Downloads/b' file_der3 = 'C:/Users/maker01/Downloads/c' #폴더 당 파일 목록을 list 변수에 저장 if os.path.exists(file_der1): file_list1 = os.listdir(file_der1) elif os.path.exists(file_der2): file_list2 = os.listdir(file_der2) elif os.path.exists(file_der3): file_list3 = os.listdir(file_der3)
-
먼저 해당 경로가 존재하는지 확인하면 됩니다:
import os file_der1 = 'C:/Users/maker01/Downloads/a' if os.path.exists(file_der1): file_list1 = os.listdir(file_der1) else: print("없지롱")
공식 도움말: https://docs.python.org/3/library/os.path.html#os.path.exists
검색 키워드:
- how to ignore python os.listdir not exist error
- python3 check directory exists
댓글 입력