在树中查找文件夹并使用其路径创建列表

时间:2014-02-21 21:31:38

标签: python

我有一个大文件夹树,我需要创建一个列表,其中包含名为“arc”的每个文件夹的路径。 文件夹树类似于:

./tree
--> ./A
----> ./one
------> ./arc
--> ./B
--> ./C
----> ./two
------> ./arc
--> ./D
--> ./E
----> ./three
--> ./F
----> ./four
------> ./arc

我的最终列表应为[/ tree / A / one / arc,/ tree / C / two / arc,/ tree / F / four / arc] (注意,弧总是在树的第四层)

我一直在尝试使用os.walk功能,但还没有成功。任何帮助将非常感激。

1 个答案:

答案 0 :(得分:1)

final_list = [os.path.join(root,dir) for
    root,dirs,files in os.walk("path/to/tree") for
    dir in dirs if dir=="arc"]

os.walk(path)返回元组列表,包含:

(the root directory for this recursion,
 a listing of all subdirectories in that root,
 a listing of all the files in that root)

所以我们正在浏览os.walk并查看所有dirs元组,拉出每个元组并检查它是否为"arc"。如果是,则使用root'path/to/tree/A/One'(类似于'arc'与dir名称(应该始终为os.path.join)组合在一起(这将特定于操作系统每个参数之间的路径分隔符),并将其添加到列表comp。