Windows 10上具有上下文管理器的Python临时文件导致PermissionError:[Errno 13]

时间:2019-03-09 19:15:07

标签: python-3.x windows-10

操作系统: Windows 10

Python: 3.6(Anaconda)

我正在尝试使用带有上下文管理器的简单临时文件来编写简单的csv。

import csv
import tempfile

fp = tempfile.TemporaryFile()
with open(fp.name,'w',newline='') as f:
    csv_out = csv.writer(f)
    csv_out.writerow(['first_name','last_name'])
    csv_out.writerow(['foo','bar'])

运行此命令将导致此权限错误:

with open(fp.name,'w',newline='') as f:
E       PermissionError: [Errno 13] Permission denied: 'C:\\TEMP\\tmp2bqke7f6'

在临时目录C:\TEMP\上更改Windows权限状态以允许所有用户完全访问没有帮助。

Per this post我尝试以Admin身份运行Windows cmd,但仍然无法正常工作。

1 个答案:

答案 0 :(得分:1)

搜索类似的问题(link)后,我发现(并测试了)一种也可以解决您的问题的解决方案。

您只需要在delete=False行中添加一个fp = tempfile.TemporaryFile()参数即可。

似乎实际上是在该行中创建了文件,然后尝试再次打开并写入文件(with open(fp.name)...)。