我有一个需要执行的半复杂目录遍历。我有一个我编写的程序,它需要一个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))
答案 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))