我有一个文本文件,大约有10列,其中7列是日期/时间戳(年、月、日、小时、分钟、秒、百分之一秒)。因此,数据大致如下...
User[TAB]System[TAB]Year[TAB]Month[TAB]Day ... centisec[TAB]Message
抱歉格式很糟糕,但我希望这能让你明白。
如果我想按年份对文件进行排序,我可以使用以下代码:
sorted_lines = sorted(unsortedfile,key=lambda l: int(l.split('\t')[2]))
将未排序的文件,通过制表符分割行,以第三列为准,将其改为int类型后排序。我也可以对任何一列做同样的操作。
我想要的是更好的按照所有日期/时间列进行排序的方式。因此,按年份排序,然后按月份排序,再按日排序等等。
我可以想到一些复杂的方法(读取每一行并结合所有列进行排序...或者通过每一列进行递归排序),但我希望有人能以更简单、更符合Python习惯的方式实现同样的功能。