python程序中如何合理处理[WinError 5]拒绝访问的错误

博客主要分析了Python中[WinError 5]拒绝访问错误,该错误是因用户程序缺乏访问文件夹或文件的权限。还给出处理办法,修改python.exe权限不太管用,删除文件可让Python运行cmd命令强制删除,跳过访问则可用try except。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

作者:朱金灿
来源:clever101的专栏

[WinError 5]拒绝访问的错误的分析

  [WinError 5]拒绝访问的错误出现主要是因为用户程序缺乏访问访问这个文件夹或文件的权限。

如何处理这样的错误

  网上很多不靠谱的文章说是修改python.exe的权限,实际上不太管用(反正在我的机器上没用)。如果你是想删掉这个文件或文件夹,可以让Python运行cmd命令强制删除此文件,具体代码如下:

import os
os.system('del "PackageCache\com.unity.textmeshpro@1.3.0\Tests\Editor.meta" /F')

  具体参考这篇文章:解决Python 删除只读文件/文件夹报错:[WinError 5] 拒绝访问
  如果你是想跳过访问该文件或文件夹,建议使用try except 跳过无权限访问的文件夹。具体代码如下:

# 获取文件或文件夹大小
# 如果该函数没有try except,在访问'C:\\ProgramData\\Application Data'时会出现# [WinError 5]拒绝访问的错误 
def getFileFolderSize(fileOrFolderPath):
    totalSize = 0

    if not os.path.exists(fileOrFolderPath):
        return totalSize

    if os.path.isfile(fileOrFolderPath):
        totalSize = os.path.getsize(fileOrFolderPath)  # 5041481
        return totalSize

    try:
        for ff in os.listdir(fileOrFolderPath):
            wholepath = os.path.join(fileOrFolderPath, ff)
            if os.path.isdir(wholepath):
                curSubFolderSize = getFileFolderSize(wholepath)
                totalSize +=curSubFolderSize

            if os.path.isfile(wholepath):
                curSubFileSize = os.path.getsize(wholepath)
                totalSize += curSubFileSize
    except:  # 如果风险语句未能过关会跳来这里继续
        os.chdir(os.pardir)

    return totalSize
``
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

clever101

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值