없는 파일을 제거하는걸 방지하려면 어떤 코드를 써야 되나요?

조회수 964회

발생하는 문제 및 실행환경

없는 파일을 제거하는걸 방지하려면 어떤 코드를 써야 되나요? 파이썬스런 방법으로 알고싶은데 제가 쓰는게 맞는지 확인해주세요

소스코드

if os.path.exists(filename):
    os.remove(filename)

1 답변

  • 좋아요

    0

    싫어요
    채택 취소하기

    더 파이썬스러운 방법이라면

    try:
        os.remove(filename)
    except OSError:
        pass
    

    이 있습니다. 물론 올려주신 코드보다 더 길지만, os.path.exists(filename)를 호출하지 않아도 되기 때문에 더 효율적입니다.

    except 부분에서 더 정확하게 코드를 짜면 "제거할 파일이 없는 경우"만 pass해야 되므로

    import os, errno
    
    def silentremove(filename):
        try:
            os.remove(filename)
        except OSError as e: # 2.6이하에서는 "except OSError, e:"
            if e.errno != errno.ENOENT: 
                raise # errno.ENOENT = no such file or directory가 아닌 경우는 다시 raise
    

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)