Python:按列值排序文本表格

-3 投票
1 回答
550 浏览
提问于 2025-04-18 13:01

文本表格的输出:

 Label1        |  String                                         | Count  
-------------------------------------------------------------------------
Addr[24]:      | "Akjalfj "                                      |   15          
Addr[25]:      | "laflklk"                                       |   16     
Addr[26]:      | "amfalkj"                                       |   13 
Addr[27]:      | "asflklal"                                      |   21

我想根据计数值对上面的文本表格输出进行排序,按从大到小的顺序排列。
Addr[27]: | "asflklal" | 21 应该出现在第一行。我该如何在Python中实现这个呢?

1 个回答

0

如果你因为某些原因不能在添加之前对行进行排序,你可以先把数据读进来,然后进行排序,再写入到另一个文件中:

with open('in.txt', 'r')  as f,open('output.txt','w') as f1:
    lines = f.readlines()
    updated = sorted(lines[2:],key = lambda x: int(x.strip()[-3:]),reverse=True)
    for line in lines[0:2]:
        f1.write(line)
    for line in updated:
        f1.write("{}\n".format(line.strip()))

这样输出的结果会有效,但前提是所有的行格式都和你的例子一样:

Label1        |  String                                         | Count
-------------------------------------------------------------------------
Addr[27]:      | "asflklal"                                      |   21
Addr[25]:      | "laflklk"                                       |   16
Addr[24]:      | "Akjalfj "                                      |   15
Addr[26]:      | "amfalkj"                                       |   13

撰写回答