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

0 投票
2 回答
541 浏览
提问于 2025-04-18 17:04

我有一个稍微复杂一点的目录遍历任务需要完成。我写了一个程序,它需要一个名为SOURCE的目录作为必需的参数。接下来,我需要获取第一层目录的列表,因为我只关心第一层的内容。然后,我要检查这个第一层目录的列表中是否包含一个特定的文件。如果包含,我就想把这个第一层目录添加到一个列表中。到目前为止,我已经做了一些工作来获取第一层目录的列表。现在我不太确定如何在这些目录下查找文件的存在(比如说*.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

你在反复检查源目录是不是一个文件夹。你需要查看这个文件夹里面的东西,看看它们是不是文件夹。同时,你还需要把路径连接起来,因为 listdir 只会返回文件和文件夹的名字。

subpaths = (os.path.join(args.source, name) for name in os.listdir(args.source))
subdirs = list(filter(os.path.isdir, subpaths))
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 结尾的文件。还有一个简短的教程 在这里

撰写回答