上网查询相关资料得到答案主要两个原因:1.文件打开被占用;2.文件路径有错。需要通过关闭文件或者修改路径解决。
但是对下面的情形无效:
刚开始测试的时候只向excel中写入单张表或者少数多张表时,按照上述方法,关闭打开的excel文件或者修改正确文件路径确实可以解决这个错误。但是当往excel中导入超过上百张表的时候诡异的一幕出现了:程序又开始报错,还是上面权限的错误,Permission Denied。
#方法一:
#写入数据到excel文件
writer = pd.ExcelWriter(output_file)
for name,data in datas.items():
data.to_excel(writer,sheetname = name)
writer.save()
尝试了关闭excel文件,检查文件路径,删除office缓存仍然报错,后来通过修改每次保存的文件名(保存输出文件名没被之前任何一次使用过),发现可以写成功,但是再执行一次程序来覆盖上次执行的结果,程序又开始报同样的错误(这个新改的文件名只能使用一次,太扯了),关键是在权限报错的情况下每次还能写入部分数据到excel表里面,文件大小每次都不一样,随机。
后来换了一种写入Excel的方式如下:
#方法二:
#写入数据到excel文件
with pd.ExcelWriter(output_file) as writer:
for name,data in datas.items():