Python中的glob模块如何实现匹配"一个或多个"?

5

我需要获取所有数字命名的文本文件:1.txt、2.txt、13.txt
使用glob可以实现吗?

import glob

for file in glob.glob('[0-9].txt'):
    print(file)

不返回13.txt文件。
并且似乎没有正则表达式中的一个或多个+运算符。

我该怎么办?

2个回答

3

来自TFM

不执行波浪号扩展,但*,?和用[]表示的字符范围将被正确匹配

所以,没有像正则表达式中那样的+运算符。您可以使用glob作为第一步(例如glob('*.txt')),并使用regex进一步过滤。


2

我认为 glob() 并不是那么容易定制的。您可能想尝试使用 os.listdir() 代替:

import os,re
for f in os.listdir("/path/to/dir"):
    if re.match(r"^\d+\.txt$", f):
        print(f)

哈哈,我的错。在Django领域里呆久了。 - Daniel Quinn

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接