Попытка сопоставить имя файла Regex из списка файлов FTP
Я пытаюсь создать условную загрузку с ftp для ежедневных файлов, я изо всех сил пытаюсь заставить регулярное выражение работать с файлом, который имеет уникальные временные метки, чтобы правильно соответствовать и загружаться. Вот что у меня есть.
Пример имени файла:
BCW_SDP_Rolling_7Days.rpt2020-02-24-07-27-24.csv
Вот что мне удалось построить, используя то, что я знаю:
today = datetime.date.today()
widate = (f"{today:%Y-%m-%d}")
pattern = ("BCW_SDP_Rolling_7Days.rpt"+widate+"*.csv")
Думаю вытащить список файлов с ftp для сравнения:
ftp_list = connection.nlst()
А затем вы хотите использовать регулярное выражение для сравнения с файлами в этом списке, чтобы найти тот, который соответствует правильно:
> wistring = re.search(r'"BCW_SDP_Rolling_7Days.rpt"+widate+"*.csv",
> ftp_list) filenameWI = str(wistring) print (filenameWI)
К сожалению, он либо плохо соответствует кучке неправильных имен, либо дает ошибку во всех различных итерациях, которые я пробовал. Я знаю, что мне здесь не хватает чего-то простого, пожалуйста, помогите.
1 ответ
Решение
Попробуй это
Код:
import datetime
import re
filename = "BCW_SDP_Rolling_7Days.rpt2020-02-24-07-27-24.csv"
# current_date = str(datetime.date.today())
current_date = "2020-02-24"
pattern = r"BCW_SDP_Rolling_7Days\.rpt" + current_date + r"(?:-\d{2}){3}\.csv"
if re.search(pattern, filename):
print("pass")
Выход:
pass