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

Posted clever101

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python程序中如何合理处理[WinError 5]拒绝访问的错误相关的知识,希望对你有一定的参考价值。

作者:朱金灿
来源: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
``

以上是关于python程序中如何合理处理[WinError 5]拒绝访问的错误的主要内容,如果未能解决你的问题,请参考以下文章

Python随心记--python之错误:OSError: [WinError 10048]

如何使用Paramiko Python通过SSH从远程服务器复制文件? FileNotFoundError:[WinError 3]系统找不到指定的路径

Windows安装python包出现PermissionError: [WinError 32] 另一个程序正在使用此文件,进程无法访问的问题解决方案

WinError2 打开LabVIEW程序时出现问题

如何修复 Jupyter Notebook pandas 错误(OSError:[WinError 193] %1 不是有效的 Win32 应用程序)

Python 使用pyinstaller打包程序失败提示找不到c盘的某个dll文件解决方法,FileNotFoundError: [WinError 2] 系统找不到指定的文件