繁体   English   中英

如何在python列表中找到最新的文件名并将其日期提取为变量?

[英]How to find the newest filename on the python list and extract its date as a variable?

我能够用我的文件名生成一个列表:

allFiles =['https://myurl.com/something//something_01-01-2020.csv', 'https://myurl.com/something//something_01-02-2020.csv', 'https://myurl.com/something//something_01-03-2020.csv'...]

如何在此列表中找到具有最早日期(在文件名内)的文件名并将其日期提取为变量?

附加方案:如果我的列表中有 00-00-0000.csv 和 00-0000.csv 怎么办?

尝试这个,

from datetime import datetime

min(allFiles,
    key=lambda x: datetime.strptime(x.split('_')[1].replace('.csv', ''), "%d-%m-%Y"))

尝试这个:

import re
from datetime import datetime

sorted(allFiles, key= lambda x: datetime.strptime(re.search("([0-9]{2}\-[0-9]{2}\-[0-9]{4})", x)[0], '%d-%m-%Y'))

它将根据日期对您的列表进行排序,因此您可以获得所需的内容。

第一个元素是最早的。

似乎您想根据文件名提取文件。

你可以做:

min(allFiles, key=lambda x:x[-8:-4]+x[-11:-9]+x[-14:-12])

此处的lambda函数通过提取相关部分并按正确顺序将它们连接起来,从文件名中获取诸如'20200101'类的字符串。 按此字符串排序将生成日期顺序。

这是基于文件名遵循以dd-mm-yyyy.csv结尾的格式的dd-mm-yyyy.csv 如果日期实际上是mm-dd-yyyy.csv (问题中未明确指定),则需要将其更改为:

min(allFiles, key=lambda x:x[-8:-4]+x[-14:-12]x[-11:-9])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM