【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('\n')#去掉一行结尾的换行符 time_strA1=line_new[29:]#20200305 except: time_strA1='0' return int(time_strA1)
之后,将list中的每一行按照顺序写到新的文件中,就可以获得排序之后的文件:
for line in sort_list: A1_file.write(line)