繁体   English   中英

使用python在文本文件中按行对数值数据的每一行进行排序

[英]Sorting each line of numeric data row wise in a text file using python

我有一个包含3列数字数据的文本文件,我想按降序分别对文件的每一行进行排序。

输入文件:

12 10 5
1 120 3
-1 1 10
-1 -1 -1

输出文件:

12 10 5
120 3 1 
10 1 -1
-1 -1 -1

我只是尝试使用sorted()函数,如下所示:

with codecs.open('BI_TA','r') as f:
    with codecs.open('ta_sort','w') as ff:
        for line in f.readlines():
             line=sorted(line)
             ff.write(line)

但这是行不通的。

更换:

line=sorted(line)

通过:

line=' '.join(sorted(line.split(), key=int, reverse=True))

假设当前行是“ 1 120 3”。 在此行上执行以下操作:

  1. line.split() -> ['1', '120', '3']
  2. sorted(['1', '120', '3'], key=int, reverse=True) > - ['120', '3', '1']中decending oreder治疗的每个值作为排序int由于key=int
  3. line = ' '.join(['120', '3', '1']) -> "120 3 1"将列表转换为字符串,因为file.write()仅接受字符串。

list(line).sort()应该可以工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM