我开始为我编写的一个小程序构建一个“Directory Explorer”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()来测试权限,然后再尝试确定它是否是一个目录,但它甚至不能让我走得那么远,所以我有点陷入僵局。我不需要我无法获得许可的文件/文件夹,所以如果有人有任何建议,我会非常乐意将它们移除。
提前致谢!
答案 0 :(得分:1)
因为它easier to ask for forgiveness then to ask for permission, 使用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)