【发布时间】:2013-03-06 19:54:21
【问题描述】:
我正在尝试在 Python 中获取某个目录的所有孙子。出于性能原因,我不想一直循环调用操作系统函数(它是一个网络文件系统)。这就是我目前所拥有的。有没有更简单的方法来做到这一点?
dirTree = os.walk(root)
children = [os.path.join(root, x) for x in dirTree.next()[1]]
grandChildren = []
for root, dirs, files in dirTree:
if root in children:
for dir in dirs:
grandChildren.append(os.path.join(root, dir))
编辑:我不清楚我对 os.walk 的调用是否是懒惰的。我的意图是在我调用后整棵树都应该在内存中,但我不确定。
【问题讨论】:
-
你看过
unipath模块吗? -
This answer 可能会有所启发。
-
您是只对孙子感兴趣,还是对所有第二代和伟大的后代感兴趣?也就是说,“root/a/b/c/d”会被包含在您的搜索中还是从您的搜索中排除?
标签: python