我有一个py
脚本,每晚都会从api收集数据并更新一些csv files
(使用pandas
.to_csv
。有时其中一个文件可能会在excel中打开(因为我一直在看它而忘记关闭它。)这会引发权限错误PermissionError: [Errno 13] Permission denied:
我想捕获此错误,关闭csv file
(或关闭excel)而不保存,然后尝试再次写入该文件。
有没有办法在python中执行此操作?
答案 0 :(得分:2)
尝试捕获任何IOError以进行写访问,如果发现异常,则使用windows taskkill命令终止excel
import os
import time
try:
with open(r'C:\file.csv', 'a') as f:
pass
except IOError:
os.system('taskkill /F /IM excel.exe')
time.sleep(2)
# do your csv read write, for example
with open(r'C:\file.csv', 'w') as f:
f.write('data')
答案 1 :(得分:-1)
您可能需要搜索交换文件(当前打开的文件)是否存在于同一目录中。
如果存在交换文件,则可能需要删除它。在写入该文件之前
了解它here 仅供参考:Delete Swap Files(不是以编程方式)
如果我错了,请纠正我!