0

我开始为我编写的一个小程序构建一个“目录资源管理器”GUI,并且使用 Pathlib,因为我以前没有使用过它。不幸的是,我在迭代根目录时几乎被卡住了,像这样迭代:

import pathlib

current=pathlib.WindowsPath('/')
children=[child for child in current.iterdir() if child.is_dir()]
print(children)

导致“PermissionError:[WinError 5] 访问被拒绝:'\\Config.Msi'”

在尝试确定它是否是目录之前,我尝试使用 path.stat() 来测试权限,但它甚至不会让我走那么远,所以我有点陷入僵局。我不需要我无论如何都无法获得许可的文件/文件夹,所以如果有人有任何建议,我很乐意将它们传递出去。

提前致谢!

4

1 回答 1

1

因为请求宽恕比请求许可更容易,所以使用Exceptions。我对pathlib一无所知,但是如果您将代码拆分一下,以下应该可以工作

import pathlib

current=pathlib.WindowsPath('/')
children = []
for child in current.iterdir():
  try:
    if child.is_dir():
      children.append(child)
  except PermissionError:
    pass

print(children)
于 2015-01-18T21:34:01.640 回答