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

被折叠的 条评论
为什么被折叠?



