임시 텍스트 파일을 만들고 사용자가 창을 닫은 후 삭제하는 스크립트가 있습니다.파이썬 오류 예외
임시 텍스트 파일은 사용자가 수행하는 작업에 따라 생성되거나 생성되지 않을 수 있습니다. 또는 사용자가 종료하기 전에 임시 텍스트 파일이 삭제 될 수 있습니다. 가능한 시나리오는 세 가지입니다.
- 임시 텍스트 파일은 'tempfilename'이름으로 생성됩니다. 파일을 제거하려고 할 때
- 임시 텍스트 파일 'tempfilename'의 이름으로 작성하지만 사용자 exit.So 전에 삭제, 그것은
OSError
- 임시 텍스트 파일이 생성되지 않습니다 높이고 더 변수는 'tempfilename 호출되지 '내가이 코드를 사용하여 시도했다
NameError
올릴 수 있도록 만들어집니다 :
try:
os.remove(str(tempfilename))
except OSError or NameError:
pass
을하지만 그것은 단지에만 OSError
를 잡을 것으로 보인다. 내가 뭐 잘못 했어요?
을 숨기고 피하기 위해 좁은 KEP해야 하는가? 변수 이름에 오자가있는 경우에만 발생하는 것입니다. – delnan
@delnan :'tempfilename'이 생성되지 않을 수도있는 질문을 읽습니다. (아마'if' 문에서 생성됩니다.)'tempfilename = None'을 시작 부분에 추가 한 다음 변경하면 'if tempfilename :',하지만 그건 내 코드가 아니야 –
@delnan 사용자가 exit 버튼을 클릭 할 때마다 위의 코드가 실행된다. 그리고 파일 이름 변수 'tempfilename'은 사용자가 특정 작업을 수행 할 때 생성된다. 무엇이든 그래서 변수 이름 'tempfilename'도 만들어지지 않습니다. 그 경우에는'NameError'를 제공합니다. 나는 올바른 방법을 사용하고 있는지 확실하지 않으므로 초보자입니다. 그러나 어떤 것이 든 작동합니다. : D –