Python,Pycharm报错PermissionError: [WinError 5] 拒绝访问。

文章讲述了在WindowsPyCharm环境中,由于C盘微信文件夹的PDF文件被设置为只读导致删除报错。通过添加`os.chmod(filename,stat.S_IWRITE)`来临时赋予写权限,解决了删除问题。作者还介绍了`os.chmod`函数及其在Windows中的权限掩码含义。

Windows环境,pycharm环境下,删除C盘微信文件夹下重复的pdf文件时,运行报错如下:

Traceback (most recent call last):
  File "C:\Users\chenz\PycharmProjects\2023Jan\fastmd5.py", line 85, in <module>
    os.remove(sing_item)
PermissionError: [WinError 5] 拒绝访问。:'c:/users/chenz/documents/wechat files/XXX/filestorage/file/2023-11/【1年级上】【人教版】计算打卡(112.pdf'

这个问题困扰我好久,网上搜了又搜,终究没有找到对症的解决办法,后来研究发现,C盘文件属性是只读。
在这里插入图片描述
后来,经过搜索发现,可以在os.remove(filename)前加上一句加上一句:
os.chmod( filename, stat.S_IWRITE ),
变成:
os.chmod( filename, stat.S_IWRITE )
os.remove(filename)

成功运行:
在这里插入图片描述
补充资料:
查询得知:os.chmod(path, mode)语法
stat.S_IXOTH: 其他用户有执行权0o001
stat.S_IWOTH: 其他用户有写权限0o002
stat.S_IROTH: 其他用户有读权限0o004
stat.S_IRWXO: 其他用户有全部权限(权限掩码)0o007
stat.S_IXGRP: 组用户有执行权限0o010
stat.S_IWGRP: 组用户有写权限0o020
stat.S_IRGRP: 组用户有读权限0o040
stat.S_IRWXG: 组用户有全部权限(权限掩码)0o070
stat.S_IXUSR: 拥有者具有执行权限0o100
stat.S_IWUSR: 拥有者具有写权限0o200
stat.S_IRUSR: 拥有者具有读权限0o400
stat.S_IRWXU: 拥有者有全部权限(权限掩码)0o700
stat.S_ISVTX: 目录里文件目录只有拥有者才可删除更改0o1000
stat.S_ISGID: 执行此文件其进程有效组为文件所在组0o2000
stat.S_ISUID: 执行此文件其进程有效用户为文件所有者0o4000
stat.S_IREAD: windows下设为只读
stat.S_IWRITE: windows下取消只读
所以,可以把mode改为stat.S_IWRITE。

参见:https://www.runoob.com/python/os-chmod.html

2025年06月03日补充:
Windows环境下,可以简单利用cmd脚本一句话实现文件属性移除,具体操作如下:
1,切换需要移除的文件的文件夹下。
2,鼠标(左键)点击当前文件夹下一次,一次即可。
3,输入cmd。
4,在弹出的cmd窗口下,输入attrib -r 然后回车即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值