Попытка сопоставить имя файла Regex из списка файлов FTP - PullRequest
0 голосов
/ 25 февраля 2020

Я пытаюсь создать условную загрузку с 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 Ответ

0 голосов
/ 25 февраля 2020

Попробуйте это

Код:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...