如何使用Regex查找所有文本文件?

时间:2011-01-10 14:59:08

标签: python glob

嘿那里。 我正在使用glob.glob函数来获取我提供的路径上的所有.txt文件的列表。 正则表达式我将函数作为C:\build\*.txt提供,但它只适用于根目录,我想在c:\ build \中查找所有文本文件,例如c:\build\files\ha.txt

怎么可能? Thankss。

2 个答案:

答案 0 :(得分:5)

请注意glob.glob将接受unix shell通配符而不是正则表达式对象(请参阅documentation)。

您可以使用.txt完成从所有子目录获取所有os.walk文件的壮举。给你这样一个列表的方法可能是这样的:

def get_all_txts_on_dir(path):
    import os
    ret = []
    for root, dir, files in os.walk(path):
        for name in files:
            if name.endswith('.txt'):
                ret.append(name)
    return ret

答案 1 :(得分:0)

glob不使用正则表达式,它有一套更简单的规则。

另一种方法是使用os.walk()并使用正则表达式执行自己匹配的标题。