从python

时间:2017-05-24 04:44:55

标签: python csv error-handling permissions

我有一个py脚本,每晚都会从api收集数据并更新一些csv files(使用pandas .to_csv。有时其中一个文件可能会在excel中打开(因为我一直在看它而忘记关闭它。)这会引发权限错误PermissionError: [Errno 13] Permission denied:

我想捕获此错误,关闭csv file(或关闭excel)而不保存,然后尝试再次写入该文件。

有没有办法在python中执行此操作?

2 个答案:

答案 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(不是以编程方式)

如果我错了,请纠正我!