Python tempfile with a context manager on Windows 10 leads to PermissionError: [Errno 13]
Python tempfile with a context manager on Windows 10 leads to PermissionError: [Errno 13]
OS: Windows 10
Python: 3.6(蟒蛇)
我正在尝试使用带有上下文管理器的简单临时文件来编写简单的 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 我尝试 运行 我的 Windows cmd 作为管理员,仍然没有用。
在搜索类似问题 (link) 时,我发现(并测试了)也适用于您的问题的解决方案。
您只需在 fp = tempfile.TemporaryFile()
行中添加一个 delete=False
参数。
似乎该文件实际上是在该行中创建的,然后尝试打开它并再次写入 (with open(fp.name)...
) 禁止您这样做。
OS: Windows 10
Python: 3.6(蟒蛇)
我正在尝试使用带有上下文管理器的简单临时文件来编写简单的 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 我尝试 运行 我的 Windows cmd 作为管理员,仍然没有用。
在搜索类似问题 (link) 时,我发现(并测试了)也适用于您的问题的解决方案。
您只需在 fp = tempfile.TemporaryFile()
行中添加一个 delete=False
参数。
似乎该文件实际上是在该行中创建的,然后尝试打开它并再次写入 (with open(fp.name)...
) 禁止您这样做。