【发布时间】:2016-01-05 04:32:15
【问题描述】:
我正在尝试使用 fnmatch 过滤器来查找给定模式的文件。但是,如果我的模式类似于 subdir/t*.txt 我的代码
for path, subdirs, files in os.walk(root):
for fn in fnmatch.filter(files, pattern):
print 'found match'
永远不会到达 print 语句。据我所知,它永远不会找到匹配项,因为 files 只是基本名称,并且不会包含子目录。有没有一种匹配包含子目录的模式的好方法?不过,它应该仍然适用于 *.txt 这样的模式。
我能想出的唯一解决方案是笨重的,有很多 if 语句和额外的 for 循环(即检查模式是否是路径,然后从子目录创建所有可能的路径检查fnmatch)。想知道是否有一个优雅的解决方案。提前致谢。
【问题讨论】: