我需要执行一个半复杂的目录遍历。我编写了一个程序,它需要一个源目录作为所需的参数。然后,我需要得到第一级目录的列表,因为我只关心第一级目录。然后,我需要获取第一级目录的列表,并查看它是否包含特定的文件。如果是这样,我希望将第一级目录添加到列表中。因此,为了获得第一级源代码的列表,我做了以下工作。我只是不确定如何在每个目录下查找一个文件的存在。(有点像*.proj)。你能提供的任何帮助都会给我指明正确的方向是很棒的!
for name in os.listdir(args.source):
if os.path.isdir(args.source):
self.tempSource.append(os.path.join(args.source, name))发布于 2014-08-12 22:05:34
您可以使用格罗布搜索文件:
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结尾的文件,还有另一个简短的教程这里
发布于 2014-08-12 21:59:13
您正在反复检查源目录是否是一个目录。您需要检查目录中的项目,以确定它们是否是目录。您还需要加入路径,因为listdir只返回名称。
subpaths = (os.path.join(args.source, name) for name in os.listdir(args.source))
subdirs = list(filter(os.path.isdir, subpaths))https://stackoverflow.com/questions/25274677
复制相似问题