python 读取文件 给数字排序

文件是txt的
格式

小红 100
大明 88
狗剩儿 95
小明 99
。。。
如何让输出为
小红 100
小明 99
狗剩儿 95
大明 88

文件这样子:


代码:

fl = open('luciatest1.txt')
l = []
sortedl = []
for lines in fl.readlines():
   lines = lines.replace("\n", "")
   l.append(lines)
print('\n', 'the original file is:', l)

sortedl = sorted(l)
print('\n', 'the sorted file is:', sortedl)


运行结果:

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-09-06
#-*- coding:utf-8 –*-

#读取名为data的txt文件
f = open('data.txt','r')
DATA = f.read()

#按行分割txt内容
DATA = DATA.split('\n')

#建立字典,人名为key,分数为value,分数需要使用int转换。
dataDic = {}
for i in DATA:
i = i.split(' ')
dataDic[i[0]] = int(i[-1])

#按照字典的value排序
result = sorted(dataDic.iteritems(),key=lambda t:t[1],reverse=True)

#打印结果
for i in result:
print i[0],i[1]

#结果:
#小红   100
#小明   99
#狗剩儿   95
#大明   88

本回答被提问者采纳
第2个回答  2016-09-06
fn = 'xx.txt'

fd = open(fn, 'r')
lines = fd.readlines()
fd.close()
name_score = [line.split(' ') for line in lines]
name_score.sort(lambda x,y:cmp(int(x[1]), int(y[1])), reverse=True)
name_score = [' '.join(line) for line in n_s]
fd = open(fn, 'w+')
fd.writelines(name_score)
fd.close()本回答被网友采纳