【发布时间】:2026-01-15 21:40:01
【问题描述】:
我正在使用tempfile.NamedTemporaryFile() 存储一些文本,直到程序结束。在 Unix 上工作没有任何问题,但在 Windows 上,返回的文件无法读取或写入:python 提供 Errno 13。唯一的方法是设置 delete=False 并使用 os.remove() 手动删除文件。为什么?
【问题讨论】:
-
你能告诉我们你使用它的代码吗?需要
delete=False作为解决方法意味着它已被删除,因为您关闭了文件。 -
好的,我找到了问题所在。有时需要删除文件,为此我使用
open(tempfile.name,"w").close()。这会导致 IOError,因为文件在创建后只能打开一次。现在,如何在不再次打开的情况下擦除其内容? -
我想你想截断文件;打电话给
.seek(0)然后.truncate()。 -
@MartijnPieters 这似乎有效,谢谢。
-
@Rnhmjoj
close()具有魔力!拯救了我的一天!