此列表按 组织。在我的列表之前是一个前缀。例如:。我使用正则表达式将对象名称从日期拆分。结果是:day.month.year[Objname].01.02.2020.log(\[Obj.*]).(\d{2}.\d{2}.\d{4})01.02.202002.02.202003.02.202004.02.202005.02.202006.02.202007.02.202008.02.202009.02.202010.02.202011.02.202012.02.202013.02.202014.02.202015.02.202016.02.202017.02.202018.02.202019.02.202020.02.202021.02.202022.02.202023.02.202024.02.202025.02.202026.02.202027.02.202029.01.202030.01.202031.01.2020我使用是因为对象名称是由数字复合的,我需要返回此文件排序。但我不知道如何处理这个问题的最佳方法是什么。sorted()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
2 回答
犯罪嫌疑人X
TA贡献2080条经验 获得超4个赞
您的日期是有序的,并且您希望按顺序对它们进行排序;因此,您可以使用拆分和反转组件的函数。dd.mm.yyyyyyyy.mm.ddkey.
>>> 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']
添加回答
举报
0/150
提交
取消