2017-04-12 68 views
0

Python的glob模块匹配与glob表达式匹配的所有文件和目录。根据文档,它通过使用os.listdir()fnmatch.fnmatch()在内部实现。python的glob模块是否有一个等效的正则表达式?

是否有一个与正则表达式匹配而不是使用globs的开箱即用模块或函数?

+0

当然,蟒蛇重新模糊。 – valex

+1

这是部分正确的,但是你必须用'os.walk'构建一个路径名列表(警告:它不会返回列表),然后在每个项目上重新匹配' –

+0

@KaeptmBlaubaer我不知何故错过了操作系统。 walk()方法。 os.walk()与re.match一定会做我想做的事情,尽管它可能效率低下,因为所有文件和子目录都将被遍历,而不管匹配,而不是仅限于部分匹配正则表达式的子目录。我期望这是为什么glob使用os.listdir()而不是使用os.walk()的原因。 – ranban282

回答

2

不是一个模块,但有可用的脚本,它的文件使用正则表达式重命名,here.

显然,这代码做配套基础上,正则表达式。您可以联系作者,了解关于如何为代码获取仅匹配界面,或者只是自己破解它。

+0

谢谢,这几乎可行。我想测试用于扫描目录的代码,并对子目录进行部分(前缀)匹配。 Kaeptm Blaubaer使用os.walk()和re.match()的方法也可以工作,但可能效率不高。 – ranban282

相关问题