PermissionError: [Errno 13] Permission denied: ' '

使用python将一些信息写入excel文件,有时候会报出如标题所示错误。这个时候我已经知道是生成的excel文件没有关闭,却再次运行程序造成的报错。只要关闭了这个生成的excel就不会出现该报错。(提示此处是对生成的excel文档手动打开手动关闭,并非代码里的)

然后在网上各种查,初步得到的答案有2,一是代码里写成了文件夹,并非文件,所以报错。二是权限不够。然后各种调试代码。使用try从open开始测试,后来发现不是open的错。

期间有想过可能是该excel文档中单元格不可写权限造成的,后来发现worksheet.protect = True # 默认为False。所以排除该错。

之后锁定到出错的行数,发现可能是在save的时候出错的,然后在save处使用了一个try抓取exception,然后成功找到该报错地点。并打印提示出该异常的处理信息。就是提示用户关闭已然打开的excel文档,再重新运行程序。(毕竟用户难免有忘记关闭之前那个旧ecxel的就想重新生成新excel的时候)

当然提示用户关闭文档后再运行程序,并非明智之举,后续会研究一下excel save有没有更好的解决办法,可以不必受权限限制。后续有进展,会再次分享,谢谢。说完。

同时从网上搜信息的时候,得到如下链接,分享至此。
openpyxl的官网上面有非常完整的库的使用方法,虽然是英文的,但是很好读(地址:http://openpyxl.readthedocs.io/en/default/)。另外有一篇歪果仁写的教程(https://automatetheboringstuff.com/chapter12/),也写得很全面,可以看看。

事实上亲测第一个网址不存在,第二个可用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值