Динамический шаблон fnmatch через переменную или комбинацию соответствия шаблона и переменной - PullRequest
0 голосов
/ 23 сентября 2019

Я пытаюсь найти лучший способ сохранить динамическое или изменяющееся значение в переменной и использовать переменную как часть моего поиска по шаблону в 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 Ответ

0 голосов
/ 23 сентября 2019

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...