尝试以递归方式查看文件夹时出现错误No.5

时间:2012-05-05 21:51:08

标签: python recursion

我正在尝试用Python编写递归文件列表程序。 当我在没有异常捕获代码的情况下运行程序时,它返回错误号5, 说某些Windows文件夹的访问被拒绝。我有管理员权限和一切,但它仍然不断抛出这个错误。 是否可以绕过这个并列出这些目录中的文件?

import os

def wrapperList():
    mainList = []
    fileList = os.listdir("C:")
    for file in fileList:
        path = os.path.join("C:\\", file)
        if (os.path.isdir(path)):
            mainList.append(recurList(path))
        else:
            mainList.append(path)
    print mainList
def recurList(directory):
    try:
        fileList = os.listdir(directory)
        tempList = []
        for file in fileList:
            path = os.path.join(directory, file)
            if (os.path.isdir(file)):
                tempList.append(recurList(path))
            else:
                tempList.append(file)
        return tempList
    except:
        return ["Access Denied"]

wrapperList()

1 个答案:

答案 0 :(得分:3)

这是一个使用os.walk比使用自己实现相同功能更好的例子。

E.g:

import os

for root, dirs, files in os.walk("/some/path"):
    ...

关于错误,如果您获得了权限被拒绝,那么可能是您真的被拒绝访问。我不是Windows用户,所以我不确定,但你需要运行具有管理员权限的程序吗? (相当于以root身份运行,或者在linux下运行sudo。)