如何使用正则表达式查找所有文本文件?
你好!
我正在使用一个叫做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