그런 파일을 만든 후에 NamedTemporaryFile에서 삭제 플래그를 어떻게 바꿀 수 있습니까?파일을 만든 후 NamedTemporaryFile에서 삭제 플래그를 변경할 수 있습니까?
왜? 대부분의 경우 임시 파일을 보관할 필요가 없지만 코드 내부에서 오류가 발견되면 해당 파일을 분석 할 수 있도록 유지하려고합니다.
그런 파일을 만든 후에 NamedTemporaryFile에서 삭제 플래그를 어떻게 바꿀 수 있습니까?파일을 만든 후 NamedTemporaryFile에서 삭제 플래그를 변경할 수 있습니까?
왜? 대부분의 경우 임시 파일을 보관할 필요가 없지만 코드 내부에서 오류가 발견되면 해당 파일을 분석 할 수 있도록 유지하려고합니다.
지금, 초기 동작을 변경하지 않습니다 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)
으로 만들고, 더 이상 파일을 원하지 않는 경우 수동으로 파일을 삭제합니다.
소스 코드에 따르면, 삭제는 단지 NamedTemporaryFile
에 의해 반환 된 개체의 특성으로 저장되므로 닫을 때까지 얼마든지 수정할 수 있습니다.
f = NamedTemporaryFile()
# stuff
f.delete = False
f.close()
편집 :이 파이썬 2 마찬가지입니다; Python 3에서는 Augusto Men 's Answer를 참조하십시오. 실제 플래그 (A _TemporaryFileCloser
인스턴스) _closer
라는 객체에 저장되기 때문에 사람을 위해
시도해 보셨습니까? 그것은 나를 위해 일하는 것 같다. –