使用python在文本文件中逐行排序每行数字数据

时间:2014-12-01 17:32:10

标签: python sorting

我有一个包含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)

但这不起作用。

2 个答案:

答案 0 :(得分:1)

替换:

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']因为int而将每个值视为key=int,因此在降级的矿工中进行排序。
  3. line = ' '.join(['120', '3', '1']) - > "120 3 1"将列表转换为字符串,因为file.write()只接受字符串。

答案 1 :(得分:-1)

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