2013-08-16 3 views
1

많은 임시 파일을 만드는 python 스크립트가 있습니다. ctrl + c 인터럽트 때문에 스크립트가 일찍 종료되면 프로그램을 끝내기 전에 해당 파일을 빨리 삭제하고 싶습니다.Python ctrl + c, 조기 종료시 excute 함수

이 문제를 해결하는 비법은 무엇입니까?

답변

5

가능하면 with 문에서 파일을 열거 나 finally 블록을 사용하여 파일을 닫는 try 문을 사용하십시오. tempfile을 사용하는 경우 파일을 닫을 때 파일이 자동으로 삭제됩니다. 그렇지 않은 경우 finally 블록에서 직접 삭제해야 할 수 있습니다. 사용

+2

은'시도 : 마지막으로'프로그램이 (말하자면 예외) KeyboardInterrupt''가 아닌 다른 이유로 종료하는 경우 당신은 여전히 ​​당신의 온도를 얻을 수 있기 때문에 구문은 특히 유용하다. 파일이 삭제되었습니다. –

+0

@JosephDunn : +1. 'try : except :'_also_ 대신'with' 또는'try : finally :'또는'tempfile'을 사용하면 성공 사례를 위해 이미 작성된 대부분의 수동 정리를 스크랩 할 수 있으므로 코드가 더 간단 해집니다. – abarnert

+0

그건 그렇고,'tempfile'은 올바른 클래스를 선택하는 한 유닉스에서 모든 것을 매우 쉽게 만듭니다 ...하지만 Windows에서는 많은 경우 여전히 고통 스럽습니다. (하지만 여전히 수시로 수동으로 시도하는 것보다 덜 고통 스럽습니다.) – abarnert

0

KeyboardInterrupt을 잡아서 처리하거나 atexit으로 종료 처리기를 설정하십시오.

또한 tempfile입니다.