2015-01-18 2 views
0

Я начал создавать графический интерфейс «Directory Explorer» для небольшой программы, которую я написал, и использовал Pathlib, поскольку раньше не использовал ее. К сожалению, я застрял в значительной степени прямо с битой Перебор в корневой директории, как это повторяется для:Python Pathlib избегает ошибок разрешения при использовании Iterdir()

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

Потому что это 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) 
Смежные вопросы