Динамический шаблон fnmatch через переменную или комбинацию соответствия шаблону и переменной

Я пытаюсь найти лучший способ сохранить динамическое или изменяющееся значение в переменной и использовать эту переменную как часть моего поиска по шаблону в fnmatch. Вполне возможно, что fnmatch - неправильный путь?

Стараемся сделать это как можно проще. Я читаю список файлов из каталога, который будет иметь строку даты, которая меняется день ото дня. Я хочу убедиться, что файл, который я ищу, существует, а пока просто напечатайте имя файла.

Это работает...

#!/bin/python

import os
import datetime as dt
import fnmatch

working_dir = '/my/working/dir/'

now = dt.date.today()
f_date = (now.strftime('%Y%m%d'))

print f_date

for root,dirs,files in os.walk(working_dir):
  for fname in files:
    if fnmatch.fnmatch(fname, '*data*20190923*'):
      print fname
  exit(0)

Я вижу файл, который я хотел бы изучить дальше:

20190923
file-data-random_junk.20190923.txt

Однако в строке шаблона я бы хотел использовать f_date который возвращает строку 20190923вместо ввода строки даты. Можно ли сопоставить комбинацию текста и переменной в строке шаблона, чтобы я мог сделать что-то вроде:if fnmatch.fnmatch(fname, '*data*[my variable]*'):?

1 ответ

Решение

Хорошо, думаю, я ответил на свой вопрос. Оставив для потомков и в случае, если это кому-то поможет. Все, что я сделал, это изменил строку fnmatch:if fnmatch.fnmatch(fname, '*data*' + f_date + '*'): что дает мне желаемый результат

Другие вопросы по тегам