我正在尝试用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()
答案 0 :(得分:3)
这是一个使用os.walk
比使用自己实现相同功能更好的例子。
E.g:
import os
for root, dirs, files in os.walk("/some/path"):
...
关于错误,如果您获得了权限被拒绝,那么可能是您真的被拒绝访问。我不是Windows用户,所以我不确定,但你需要运行具有管理员权限的程序吗? (相当于以root身份运行,或者在linux下运行sudo
。)