Python 에서 파일 이나 폴 더 가 존재 하 는 지 여 부 를 판단 하 는 세 가지 방법

파일 을 읽 고 쓰기 전에 파일 이나 디 렉 터 리 가 존재 하 는 지 여 부 를 판단 해 야 합 니 다.그렇지 않 으 면 일부 처리 방법 이 프로그램 에 실 수 를 할 수 있 습 니 다.따라서 어떤 조작 을 하기 전에 파일 이 존재 하 는 지 판단 하 는 것 이 좋다.
파일 이나 폴 더 의 존재 여 부 를 판단 하 는 세 가지 방법 을 소개 합 니 다.각각 os 모듈,Try 구문,pathlib 모듈 을 사용 합 니 다.
1.os 모듈 사용
os 모듈 의 os.path.exists()방법 은 파일 이 존재 하 는 지 확인 하 는 데 사 용 됩 니 다.
  • 파일 의 존재 여 부 를 판단 한다
  • 
    import os
    os.path.exists(test_file.txt)
    #True
    os.path.exists(no_exist_file.txt)
    #False
  • 폴 더 의 존재 여 부 를 판단 합 니 다
  • 
    import os
    os.path.exists(test_dir)
    #True
    os.path.exists(no_exist_dir)
    #False
    os.path.exists()방법 으로 파일 과 폴 더 가 같다 고 판단 할 수 있다.
    사실 이런 방법 에 문제 가 있 습 니 다.파일 을 검사 하고 싶다 고 가정 하 세 요."test"data 가 존재 하 는 지 여부 입 니 다.그러나 현재 경로 아래 에"test"라 는 것 이 있 습 니 다.data'의 폴 더 는 오심 이 생 길 수 있 습 니 다.이런 상황 을 피하 기 위해 서 는 이렇게 할 수 있다.
  • 파일 만 검사
  • 
    import os
    os.path.isfile("test-data")
    이 방법 을 통 해 파일'test-data'가 존재 하지 않 으 면 false 로 돌아 가 고,반대로 True 로 돌아 갑 니 다.
    즉,파일 이 존재 하 므 로 읽 기와 쓰기 가 가능 한 지 판단 해 야 할 수도 있 습 니 다.
    파일 이 읽 기와 쓰기 동작 을 할 수 있 는 지 판단 합 니 다.os.access()방법 으로 파일 을 읽 고 쓸 수 있 는 지 여 부 를 판단 합 니 다.
    문법:
    
    os.access(, )
    path 는 파일 경로 이 고 mode 는 조작 모드 입 니 다.몇 가지 가 있 습 니 다.
  • os.F_OK:파일 이 존재 하 는 지 확인 합 니 다.
  • os.R_OK:파일 을 읽 을 수 있 는 지 확인 합 니 다.
  • os.W_OK:파일 을 쓸 수 있 는 지 확인 합 니 다.
  • os.X_OK:파일 이 실 행 될 수 있 는 지 확인
  • 이 방법 은 파일 경로 가 존재 하 는 지,각종 접근 모드 의 권한 이 True 나 False 로 되 돌아 가 는 지 판단 합 니 다.
    
    import os
    if os.access("/file/path/foo.txt", os.F_OK):
      print "Given file path is exist."
    if os.access("/file/path/foo.txt", os.R_OK):
      print "File is accessible to read"
    if os.access("/file/path/foo.txt", os.W_OK):
      print "File is accessible to write"
    if os.access("/file/path/foo.txt", os.X_OK):
      print "File is accessible to execute"
    2.Try 문 구 를 사용한다
    프로그램 에서 파일 이 존재 하고 읽 을 수 있 는 지 확인 하기 위해 open()방법 을 직접 사용 할 수 있 습 니 다.
    문법:
    
    open()
    open 파일 이 존재 하지 않 으 면 프로그램 에서 오 류 를 내 보 냅 니 다.try 문 구 를 사용 하여 이 오 류 를 캡 처 합 니 다.
    프로그램 이 파일 에 접근 할 수 없습니다.여러 가지 이유 가 있 을 수 있 습 니 다.
  • 열 린 파일 이 존재 하지 않 으 면 FileNotFoundeError 의 이상 을 던 집 니 다.
  • 파일 이 존재 하지만 접근 할 수 있 는 권한 이 없습니다.Persmission Error 의 이상 을 던 집 니 다.
  • 따라서 아래 코드 를 사용 하여 파일 이 존재 하 는 지 여 부 를 판단 할 수 있 습 니 다.
    
    try:
      f =open()
      f.close()
    except FileNotFoundError:
      print "File is not found."
    except PersmissionError:
      print "You don't have permission to access this file."
    사실 모든 이상 을 이렇게 세밀 하 게 처리 할 필요 가 없다.위의 두 가지 이상 은 모두 IOError 의 하위 클래스 이다.그래서 절 차 를 간소화 할 수 있다.
    
    try:
      f =open()
      f.close()
    except IOError:
      print "File is not accessible."
    try 문 구 를 사용 하여 판단 하여 모든 이상 을 매우 간단 하고 우아 하 게 처리 합 니 다.그리고 다른 외부 모듈 을 도입 할 필요 가 없다.
    3.pathlib 모듈 사용
    pathlib 모듈 은 Python 3 버 전에 서 내장 모듈 이지 만 Python 2 에 서 는 3 자 모듈 을 따로 설치 해 야 합 니 다.
    pathlib 를 사용 하려 면 먼저 파일 경 로 를 사용 하여 path 대상 을 만들어 야 합 니 다.이 경 로 는 파일 이름 이나 디 렉 터 리 경로 일 수 있 습 니 다.
  • 경로 가 존재 하 는 지 확인 하기
  • 
    path = pathlib.Path("path/file")
    path.exist()
  • 경로 가 파일 인지 확인 하기
  • 
    path = pathlib.Path("path/file")
    path.is_file()
    총결산
    위 에서 말 한 것 은 소 편 이 여러분 에 게 소개 한 Python 이 파일 이나 폴 더 의 존재 여 부 를 판단 하 는 세 가지 방법 입 니 다.여러분 에 게 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 면 메 시 지 를 남 겨 주세요.소 편 은 제때에 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!

    좋은 웹페이지 즐겨찾기