gpt4 book ai didi

python - 如何在python中对日期进行排序?

转载 作者:太空宇宙 更新时间:2023-11-03 13:25:46 27 4
gpt4 key购买 nike

我试图对列表中的日期进行排序,但日期出现在字符串元素 [EQUIP-X] 之后。首先使用正则表达式,取唯一的日期并尝试排序。它不起作用!

我想拆分字符串 [EQUIP-X]Date

files = [filename for root, dirs, files in os.walk(path) for filename in files for date in dateList if filename.endswith(date+".log")]
for item in files:
reg = re.search(r"(.+]).(\d{2}.\d{2}.\d{4})",item)
equip = reg.group(1)
data = reg.group(2)
namefile = data+'.'+equip
print item
  • 组(1) - [EQUIP-X]
  • 组(2) - 日期

示例字符串:

[EQUIP-4].02.05.2019.log
[EQUIP-2].01.05.2019.log
[EQUIP-1].30.04.2019.log
[EQUIP-3].29.04.2019.log
[EQUIP-1].01.05.2019.log
[EQUIP-5].30.04.2019.log
[EQUIP-1].29.04.2019.log
[EQUIP-5].30.04.2019.log
[EQUIP-3].30.04.2019.log
[EQUIP-1].29.04.2019.log
[EQUIP-2].02.05.2019.log

关注此tutorial ,一旦我不是在操纵“日期”而是操纵“str”,就没有“str”对象的属性“sort”。更好的方法是什么?想法是拆分并处理日期,然后加入所有

最佳答案

您可以只根据字符串的结尾减去解析为日期的最后 4 个字符(文件扩展名)进行排序。由于日期格式是零填充的,因此它的长度应始终为 10 个字符,因此字符串拼接从 -14 开始(10 表示日期 + 4 表示扩展名)

from datetime import datetime

files = ['[EQUIP-4].02.05.2019.log',
'[EQUIP-2].01.05.2019.log',
'[EQUIP-1].30.04.2019.log',
'[EQUIP-3].29.04.2019.log',
'[EQUIP-1].01.05.2019.log',
'[EQUIP-5].30.04.2019.log',
'[EQUIP-1].29.04.2019.log',
'[EQUIP-5].30.04.2019.log',
'[EQUIP-3].30.04.2019.log',
'[EQUIP-1].29.04.2019.log',
'[EQUIP-2].02.05.2019.log']

files.sort(key=lambda x: datetime.strptime(x[-14:-4], '%d.%m.%Y'))
print(files)
['[EQUIP-3].29.04.2019.log',
'[EQUIP-1].29.04.2019.log',
'[EQUIP-1].29.04.2019.log',
'[EQUIP-1].30.04.2019.log',
'[EQUIP-5].30.04.2019.log',
'[EQUIP-5].30.04.2019.log',
'[EQUIP-3].30.04.2019.log',
'[EQUIP-2].01.05.2019.log',
'[EQUIP-1].01.05.2019.log',
'[EQUIP-4].02.05.2019.log',
'[EQUIP-2].02.05.2019.log']

关于python - 如何在python中对日期进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55958693/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com