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


발생하는 문제 및 실행환경

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

소스코드

if os.path.exists(filename):
    os.remove(filename)
  • 2016년 02월 16일에 작성됨

조회수 79


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
  • 2016년 02월 16일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close