【发布时间】:2020-06-09 13:58:39
【问题描述】:
我正在尝试从 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)
不幸的是,它要么松散地匹配一堆不正确的名称,要么在我尝试过的所有不同迭代中都出现错误。我知道我在这里缺少一些简单的东西,请帮忙。
【问题讨论】:
-
*.可能有问题。如我所见,您正在匹配widate返回零次或多次(这是*量词所做的,它不是通配符)的最后一个数字,然后使用.(一个特殊字符,表示任何字符)。您能否包括widate返回的确切内容?
标签: python regex ftplib fnmatch