此列表由day.month.year
. 在我的列表之前是一个前缀。例如:[Objname].01.02.2020.log
。我使用正则表达式(\[Obj.*]).(\d{2}.\d{2}.\d{4})
从日期拆分 ObjectName。这是结果:
01.02.2020
02.02.2020
03.02.2020
04.02.2020
05.02.2020
06.02.2020
07.02.2020
08.02.2020
09.02.2020
10.02.2020
11.02.2020
12.02.2020
13.02.2020
14.02.2020
15.02.2020
16.02.2020
17.02.2020
18.02.2020
19.02.2020
20.02.2020
21.02.2020
22.02.2020
23.02.2020
24.02.2020
25.02.2020
26.02.2020
27.02.2020
29.01.2020
30.01.2020
31.01.2020
我使用sorted()
是因为 Objectname 是由数字组成的,我需要返回排序的文件。但我不知道如何处理这个问题的最佳方法。
def getFiles(numbers):
currentDay = datetime.datetime.now()
numdays = numbers
dateList = []
for x in range (0, numdays):
date = currentDay - datetime.timedelta(days = x)
days = date.strftime("%d.%m.%Y")
dateList.append(days)
path = "/var/log/"
files = sorted([filename for root, dirs, files in os.walk(path)
for filename in files
for date in dateList
if filename.endswith(date+".log")])
return files
你的日期是dd.mm.yyyy
有序的,你想按yyyy.mm.dd
顺序对它们进行排序;所以你可以使用一个key
函数来拆分.
和反转组件。
>>> date_strings = ['01.01.2009', '04.07.2007', '05.06.2007', '06.06.2007']
>>> sorted(date_strings, key=lambda d: d.split('.')[::-1])
['05.06.2007', '06.06.2007', '04.07.2007', '01.01.2009']
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句