这是我的示例代码:
import os
from tempfile import mkstemp
fname = mkstemp(suffix='.txt', text=True)[1]
os.remove(fname)
当我在Linux上运行它时,它运行正常。但是当我使用Python 3.4.4在我的Windows XP上运行它时,它引发了以下错误:
Traceback (most recent call last):
File "C:\1.py", line 5, in <module>
os.remove(fname)
PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\DOCUME~1\\IEUser\\LOCALS~1\\Temp\\tmp3qv6ppcf.txt'
但是,当我使用tempfile.NamedTemporaryFile()
创建临时文件并将其关闭时,它会自动删除。
为什么Windows无法删除mkstemp
创建的文件?我在哪里做错了?
答案 0 :(得分:13)
以最安全的方式创建临时文件。 [...]
[...]
int a; a = asciiToInt(latitude[0]); a += asciiToInt(latitude[1])*10; a += asciiToInt(latitude[2])*100; a = a*2;
按顺序返回一个元组,该元组包含一个打开文件的OS级句柄(由mkstemp()
返回)和该文件的绝对路径名。
os.open()