python全局匹配模式

python全局匹配模式,python,c,glob,Python,C,Glob,我正在查看glob手册页,无法使匹配模式在python中工作。到目前为止我有这个 glob.glob('file.*') + glob.glob('file[0-9].*') 只要文件号不超过9,它就会给我一个列表。如果我创建一个file100.txt,它就不起作用,如果我尝试范围[0-100]或[0-1000],它不会改变任何东西 所以我的问题是,我怎样才能使这个匹配成为任何一个数字……以及我怎样才能将它组合成一个语句,它似乎应该是一个语句 普通的globbing不能处理这种事情。不能指定特

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

glob.glob('file.*') + glob.glob('file[0-9].*')
只要文件号不超过9,它就会给我一个列表。如果我创建一个file100.txt,它就不起作用,如果我尝试范围[0-100]或[0-1000],它不会改变任何东西


所以我的问题是,我怎样才能使这个匹配成为任何一个数字……以及我怎样才能将它组合成一个语句,它似乎应该是一个语句

普通的globbing不能处理这种事情。不能指定特定字符模式的重复。你一个电话都做不到。最好的办法是只使用
文件*.txt
,然后对结果列表进行后期处理,以消除与您的模式不匹配的列表,例如,在
re
模块中使用正则表达式函数。

普通的全局搜索无法处理这种情况。不能指定特定字符模式的重复。你一个电话都做不到。最好的办法是只使用
文件*.txt
,然后对结果列表进行后期处理,以消除与您的模式不匹配的列表,例如在
re
模块中使用正则表达式函数。

我敢肯定
glob
的表达能力不足以满足您的需要,因此,我建议获取比您需要的更多的内容,然后进行过滤。例如(未经测试)


我很确定
glob
的表达能力不足以满足您的需要,因此我建议获取比您需要的更多的内容,然后进行过滤。例如(未经测试)

import re

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