如何在Python中的第一级目录中查找特定文件

时间:2014-08-12 21:53:36

标签: python python-2.7 file-io os.walk

我有一个需要执行的半复杂目录遍历。我有一个我编写的程序,它需要一个SOURCE目录作为必需参数。然后我需要获得FIRST LEVEL目录的列表,因为我真的只关心第一级。然后,我需要获取FIRST LEVEL目录列表,并查看它是否包含特定文件。如果是,我想将第一级目录添加到列表中。因此,我已完成以下操作以获取第一级源的列表。我只是不确定如何在每个目录下查找文件的存在。 (类似* .proj)。你能提供的任何帮助都会让我指向正确的方向!

 for name in os.listdir(args.source):
        if os.path.isdir(args.source):
            self.tempSource.append(os.path.join(args.source, name))

2 个答案:

答案 0 :(得分:1)

您可以使用glob搜索文件:

import glob
import os
files = []
for name in os.listdir(args.source):
    if os.path.isdir(name):
        files.append(glob.glob(os.path.join(args.source, name + "/*.proj"))) # match any files ending with .proj

*.proj使用通配符,它​​将匹配任何以扩展名.proj结尾的文件 还有另一个简短的教程here

答案 1 :(得分:0)

您正在检查源目录是否是重复的目录。您需要检查该目录中的项目以查看它们是否是目录。您还需要加入路径,因为listdir只返回名称。

subpaths = (os.path.join(args.source, name) for name in os.listdir(args.source))
subdirs = list(filter(os.path.isdir, subpaths))