Глобус "один или несколько" в Python - PullRequest
3 голосов
/ 07 ноября 2011

Мне нужно получить все текстовые файлы с числовыми именами: 1.txt, 2.txt, 13.txt
Можно ли сделать с glob?

import glob

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

Не возвращает 13.txt.
Ипохоже, нет ни одного или нескольких операторов регулярных выражений +.

Что я могу сделать?

Ответы [ 2 ]

2 голосов
/ 07 ноября 2011

С TFM :

Расширение тильды не выполняется, но выражены *,? И диапазоны символов с [] будет правильно сопоставлено

Итак, нет, нет операторов +, как в регулярном выражении. Вы можете использовать glob в качестве первого прохода (как в glob('*.txt')) и отфильтровать его с помощью regex.

1 голос
/ 07 ноября 2011

Я не думаю, что glob() предназначен для такой настройки. Возможно, вы захотите попробовать os.listdir() вместо:

import os,re
for f in os.listdir("/path/to/dir"):
    if re.match(r"^\d+\.txt$", f):
        print(f)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...