我正在使用 os.walk 从特定文件夹中选择与正则表达式匹配的文件。
for dirpath, dirs, files in os.walk(str(basedir)):
files[:] = [f for f in files if re.match(regex, os.path.join(dirpath, f))]
print dirpath, dirs, files
但这要处理 basedir 下的所有文件和文件夹,相当耗时。我正在寻找一种方法来使用与文件相同的正则表达式来过滤掉每一步中不需要的目录。或者一种只匹配正则表达式的一部分的方法......
例如,在类似的结构中
/data/2013/07/19/file.dat
使用例如以下正则表达式
/data/(?P<year>2013)/(?P<month>07)/(?P<day>19)/(?P<filename>.*\.dat)
无需查看例如 /data/2012 即可找到所有 .dat 文件