Динамический шаблон 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 + '*'):
что дает мне желаемый результат