如何使用正则表达式查找所有文本文件?

0 投票
2 回答
4496 浏览
提问于 2025-04-16 09:43

你好!

我正在使用一个叫做glob.glob的函数,目的是获取我提供的路径下所有的.txt文件列表。

我给这个函数的规则是C:\build\*.txt,但是它只在根目录下有效。我想找到c:\build\目录下的所有文本文件,比如c:\build\files\ha.txt这样的文件。

请问这怎么实现呢?谢谢!

2 个回答

0

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

另外一个选择是使用 os.walk(),然后自己用正则表达式来匹配文件名。

5

请注意,glob.glob 可以接受 Unix 系统中的通配符,而不是正则表达式对象(具体可以查看文档)。

如果你想从所有子目录中获取所有的 .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

撰写回答