【发布时间】:2019-02-27 01:04:04
【问题描述】:
我有这个日志文件列表,我想按每个文件中的日期对它们进行排序:如您所见,LOG_ 后面有一个数字,它是我想要对字符串进行排序的键。
日期为yyyymmdd 格式。
LOGS\LOG_20190218_91_02.LOG
LOGS\LOG_20190218_91_05.LOG
LOGS\LOG_20190218_91_00.LOG
LOGS\LOG_20190218_91_22.LOG
LOGS\LOG_20190218_91_10.LOG
LOGS\LOG_20190219_56_22.LOG
LOGS\LOG_20190219_56_24.LOG
LOGS\LOG_20190219_56_25.LOG
LOGS\LOG_20190219_56_26.LOG
LOGS\LOG_20190219_56_03.LOG
LOGS\LOG_20190220_56_22.LOG
LOGS\LOG_20190220_56_07.LOG
LOGS\LOG_20190220_56_13.LOG
LOGS\LOG_20190220_56_17.LOG
LOGS\LOG_20190220_56_21.LOG
我尝试了各种方法:
提取日期值,将它们添加到列表中,区分它们(使用
set),然后逐个获取字符串/文件路径并将其添加到列表中。问题是日期的大小可能会有所不同(这里只有 3 个,但可能更多)。所以使用固定列表(可能)超出了范围。验证每个字符串并检查上一个/下一个以查看日期是否更改。如果更改,则将所有以前的路径/字符串添加到列表中。仍然是同样的问题,但也许这种方法可以改进。
手动复制粘贴文件夹中每个日期的文件,然后使用它们。到目前为止,这超出了范围,因为我们正在讨论大文件 (gigs)。
我想了解的是如何实施第二个解决方案。如何正确地将具有相同日期的文件/字符串存储在自己的列表中?
预期结果...
list20190218 = [all LOG files with 20190218 value in name]
list20190219 = [all LOG files with 20190219 value in name]
list20190220 = [all LOG files with 20190220 value in name]
...但列表数量可变。
谢谢
【问题讨论】:
-
这是什么,一个txt文件?一份清单?
-
对不起,这是一个路径列表。
-
你能发布一些代码吗?对我来说,很难理解你在每种方法中实际在做什么。看来你可以简单地使用
list.sort(),但可能我错过了什么...... -
我不想只对字符串进行排序(实际上我已经这样做了),而是在这种情况下创建一个容器(列表,字典),它将包含所有相同的字符串日期。一个问题是容器的数量可能会有所不同。