Python中的glob“一个或多个”

时间:2011-11-07 15:07:03

标签: python glob

我需要获取所有带有数字名称的文本文件:1.txt, 2.txt, 13.txt
是否可以使用glob

import glob

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

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

我该怎么办?

2 个答案:

答案 0 :(得分:2)

来自TFM

  

没有进行波浪线扩展,但表示了* ,?和字符范围   与[]将正确匹配

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

答案 1 :(得分:1)

我不认为glob()是可自定义的。您可能想要尝试os.listdir()

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