Python에서 임시 파일을 만들고 싶다면 Python의 표준 라이브러리에 tempfile 이라는 모듈이 있습니다. 다른 프로그램을 실행하여 파일에서 작동하려면 tempfile.mkstemp ()를 사용하여 파일을 만들고 os.fdopen ()을 사용하여 mkstemp ()가 제공하는 파일 설명자에 액세스합니다.
덧붙여서, 파이썬 프로그램에서 명령을 실행하고 있다고 말씀하십니까? 거의 확실하게 subprocess 모듈을 사용해야 합니다.
따라서 다음과 같은 코드를 매우 즐겁게 작성할 수 있습니다.
import subprocess
import tempfile
import os
(fd, filename) = tempfile.mkstemp()
try:
tfile = os.fdopen(fd, "w")
tfile.write("Hello, world!\n")
tfile.close()
subprocess.Popen(["/bin/cat", filename]).wait()
finally:
os.remove(filename)
그것을 실행하면 cat
명령이 완벽하게 잘 작동하지만 임시 파일이 finally
블록 에서 삭제 되었음을 알 수 있습니다. 당신이 알고 수 있는 라이브러리가 당신이 그것을 완료하면 알 수있는 방법이 있습니다 -은 mkstemp ()가 자신을 반환하는 임시 파일을 삭제!
(편집 : NamedTemporaryFile이 정확히 원하는 작업을 수행했다고 가정했지만 그렇게 편리하지 않을 수 있습니다. 임시 파일 개체가 닫히면 파일이 즉시 삭제되고 파일을 닫기 전에 다른 프로세스가 파일을 열도록합니다. 일부 플랫폼, 특히 Windows에서는 작동하지 않습니다. 죄송합니다. 실패했습니다.)