如何从S3存储的字符串格式路径列表中选取日期最新的路径
你提取出的是dd-mm-yyyy格式的日期字符串,直接调用max()比较时,会按照单个字符的ASCII编码顺序判断大小,无法正确识别日期的实际先后,所以会运行失败或得到错误结果。
借助Python标准库datetime将日期字符串转为可正确比较的日期对象,配合max()函数的key参数可以直接得到最新的完整路径,无需单独提取日期列表:
from datetime import datetime # 你的S3路径列表 lst_of_str = [ "ldata_snshots/11-11-2021/", "ldata_snshots/12-11-2021/" ] latest_path = max( lst_of_str, key=lambda path: datetime.strptime(path.split("/")[1], "%d-%m-%Y") )
运行后latest_path就是你需要的ldata_snshots/12-11-2021/。
如果路径列表中可能存在格式不符合要求的路径,可以加异常处理避免运行中断:
from datetime import datetime def parse_path_date(path: str) -> datetime: try: date_str = path.split("/")[1] return datetime.strptime(date_str, "%d-%m-%Y") except (IndexError, ValueError): # 格式异常的路径返回最小日期,不会被判定为最新 return datetime.min latest_path = max(lst_of_str, key=parse_path_date)
内容的提问来源于stack exchange,提问作者caasswa
相关产品推荐
相关产品推荐

