操作系统: 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,但仍然无法正常工作。
答案 0 :(得分:1)
搜索类似的问题(link)后,我发现(并测试了)一种也可以解决您的问题的解决方案。
您只需要在delete=False
行中添加一个fp = tempfile.TemporaryFile()
参数即可。
似乎实际上是在该行中创建了文件,然后尝试再次打开并写入文件(with open(fp.name)...
)。