2011-11-16 3 views

답변

2

지금, 초기 동작을 변경하지 않습니다 NamedTemporaryFile를 인스턴스화 한 후 delete을 변경, 적어도 파이썬 3+를 들어,이 질문을 인터넷 검색. official Python docs에는 아무 것도 언급되어 있지 않기 때문에 Python의 tempfile.py을 참조하십시오.

그래서 당신은이 문서화되지 않은 속성 변경 중 하나

f = tempfile.NamedTemporaryFile(delete=True) 
# f.delete = False # This doesn't change anything 
f._closer.delete = False # undocumented 
f.close() # the file won't be deleted 

을 또는 당신은 항상 NamedTemporaryFile(delete=False)으로 만들고, 더 이상 파일을 원하지 않는 경우 수동으로 파일을 삭제합니다.

2

소스 코드에 따르면, 삭제는 단지 NamedTemporaryFile에 의해 반환 된 개체의 특성으로 저장되므로 닫을 때까지 얼마든지 수정할 수 있습니다.

f = NamedTemporaryFile() 
# stuff 
f.delete = False 
f.close() 

편집 :이 파이썬 2 마찬가지입니다; Python 3에서는 Augusto Men 's Answer를 참조하십시오. 실제 플래그 (A _TemporaryFileCloser 인스턴스) _closer라는 객체에 저장되기 때문에 사람을 위해

관련 문제