Попытка сопоставить имя файла 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
Другие вопросы по тегам