glob,但不要忽略“权限被拒绝”
Python glob 会忽略“权限被拒绝”错误。不幸的是我需要知道是否有一个我无法读取的目录。
我可以使用 os.walk() 和 fnmatch,但也许有更好的解决方案?
示例:
user@pc:~
===> python
>>> import glob
>>> glob.glob('/root/*')
[]
/root 下有文件,但 user@pc 不允许读取该目录。
单个异常是不够的。例如glob.glob('/var/log/*/*.log')
。我想知道哪些目录存在,但不可读。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
获取所有无法读取的目录和文件的一种方法确实是使用
os.walk
递归地遍历目录树,然后对于每个目录和文件,使用os.access
:注意:您可以编写自己的递归函数来遍历目录结构,但基本上会复制
os.walk< /code> 功能,所以我没有看到
glob.glob
的用例。One way to get all the directories and files that cannot be read is indeed use
os.walk
to traverse recursively a directory tree and then, for every directory and file, check permissions usingos.access
:Note: You could write your own recursive function that traverses the directory structure, but you'll be basically duplicating
os.walk
functionality, so I don't see the use case forglob.glob
.