【Python】list排序问题

【问题描述】

将一个txt文件的每一行放到一个list中,txt文件中的每一行格式为:

!AIVDM,1,1,0,A,A6H:_YCFVP".-)A/2Y0AKIXJBLMP,309102270

其中,最后面的数字代表时间戳。我想以时间戳为基准对list中的line进行排序。

【解决方法】

主函数:

    sort_list.sort(key=sort_key)

自己定义的排序子函数:

#排序子函数
def sort_key(line):
    # 排序关键字匹配
    if line:
        try:
            line_new=line[15:]#将前面报文的头部信息去掉
            line_new=line_new.strip('
')#去掉一行结尾的换行符
            time_strA1=line_new[29:]#20200305
        except:
            time_strA1='0'
        return int(time_strA1)

 之后,将list中的每一行按照顺序写到新的文件中,就可以获得排序之后的文件:

    for line in sort_list:
        A1_file.write(line)

  

原文地址:https://www.cnblogs.com/waimen/p/12667598.html