【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)

浙公网安备 33010602011771号