0
나는 파이썬 3의 우분투 16.04에서 내용을 tempfile.NamedTemporaryFile
에 쓰려고합니다. 특정 상황에서 필자는 쓰기가 완료된 후 해당 파일을 다른 위치에 복사하려고합니다. 이 문제는 다음 코드를 재생 : 실행이 끝나면Linux에서 NamedTemporaryFile을 복사하면 빈 파일이됩니다.
import tempfile
import shutil
with tempfile.NamedTemporaryFile('w+t') as tmp_file:
print('Hello, world', file=tmp_file)
shutil.copy2(tmp_file.name, 'mytest.txt')
mytest.txt
가 비어 있습니다. NamedTemporaryFile
을 만들 때 delete=False
을 사용하면 해당 콘텐츠를 /tmp/
에서 검사 할 수 있으며 문제가 없습니다.
문서에 따라 Windows에서 파일을 열어도 파일을 다시 열 수는 없다는 것을 알고 있지만 Linux는 정상적으로 작동하므로 예상하지는 않습니다.
무슨 일이 일어나고 있으며 어떻게 해결 될 수 있습니까?