python 全局匹配模式

python glob matching patterns

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

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

这行得通 return 只要文件编号不超过 9 就给我一个列表。如果我创建 file100.txt 它不起作用,如果我尝试范围 [0 -100] 或 [0-1000] 它不会改变任何东西...

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

普通的 globbing 不能处理那种类型的事情。您不能指定特定字符模式的重复。您将无法通过一个电话来完成。你最好的选择是只使用 file*.txt,然后 post 处理结果列表以消除不匹配你的模式的列表,例如通过使用 re 模块中的正则表达式函数。

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

import re

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