2016-07-16 69 views
0

我正在查看glob手册页,我无法在python中使匹配模式工作。我有这个迄今为止...python glob匹配模式

glob.glob('file.*') + glob.glob('file[0-9].*') 

这一点也适用,并且只要回到我的清单作为文件编号Ø不超过9.如果我做一个file100.txt它不工作,如果我尝试范围[0-100]或[0-1000]它不会改变任何东西...

所以我的问题是我怎么能使这场比赛任何数字....还有我怎么能结合成一个声明,似乎应该是一次声明。

回答

3

我很确定glob没有足够的表现力来做你想做的事情,所以我建议你抓取比你需要的更多,然后过滤。例如。 (未经测试)

import re 

file_names = [name for name in glob.glob('file*.*') if re.match(r'^file\d*\.', name] 
2

普通globbing不处理这种类型的事情。您无法指定特定字符模式的重复。您将无法通过一次通话完成。最好的办法是仅使用file*.txt,然后对结果列表进行后处理,以消除与您的模式不匹配的列表,例如使用re模块中的正则表达式函数。