[英]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.