Python报错PermissionError: [Errno 13] Permission denied: ‘xxx‘解决方法

报错信息:PermissionError: [Errno 13] Permission denied: 'xxx'

场景:

用openpyxl库往excel文件中写入数据、最后执行workbook.save(path)的时候报错。

解决方法:把目标文件关闭,重新执行即可。

分析过程:

在进行excel读写处理前,有通过 if os.path.exists(path) 检查文件路径,可以确定目标文件是存在的。错误原因是我把这个文件打开了,导致python无法对它进行写入操作。

延申思考:

python中的异常处理机制可以捕获到特定类型的Exception。所以我试了一下,把处理放到try模块中,当捕获到PermissionError这个类型的异常时,弹出警告框提醒使用者。

基本结构如下:

    def on_Test(self):
        try:
            path = r'D:\Test\output001.xlsx'
            # 把excel文件的读写处理放在这里,具体内容这里忽略
        except PermissionError:
            print("出现异常")
            QMessageBox.information(self, '提示', '请确认该文件已关闭!\n文件路径:'+path)
        else:
            # 没有异常时执行的处理
            print("文件已成功写入")
        finally:
            # 不管是否有异常都会执行的处理
            print("do nothing")

on_Test()是与按钮绑定的一个事件,当用户点击按钮时,执行try中的逻辑,当捕捉到PermissionError异常,弹出MessageBox提醒用户关闭文件。结果可行。

参考文章:

解决Python报错:PermissionError: [Errno 13] Permission denied_python permission denied-CSDN博客

  • 10
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值