Python读写迁移练习及注意事项

项目场景:

已知成绩如下: [‘罗恩102\n’, ‘哈利383\n’, ‘赫敏570\n’, ‘马尔福275\n’]
对课堂上得到的“winner”文档再行处理一下。
让学员的成绩从高到低排列,然后放到新文档“winner_new.txt”。

项目实操:

# 下面已经为你准备好了打开的代码和一些变量名的准备。
# 请你完成数据处理以及新建文档(同一个目录)的代码。
# 一个提示:可以用 print 作为检验代码,步步为营。


file1 = open('winner.txt','r',encoding='utf-8') 
file_lines = file1.readlines() 
file1.close()
dict_scores = {}
list_scores = []
final_scores = []
# 


print(file_lines) 
# print(len('\n'))
# 打印结果为:['罗恩102\n', '哈利383\n', '赫敏570\n', '马尔福275\n']
# 经过测试,发现'\n'的长度是1。所以,名字是“第0位-倒数第5位”,分数是“倒数第4位-倒数第二位”。
***# 再根据“左取右不取”,可知:name-[:-4],score-[-4:-1]***

for i in file_lines: # i是字符串。
    #print(i)
    #print(len(i))
#得出的字符串的长度:罗恩102 6 哈利383 6 赫敏570 6 马尔福275 7
    name = i[:-4] # 取出名字(注:字符串和列表一样,是通过偏移量来获取内部数据。)
    score = int(i[-4:-1]) # 取出成绩
    print(name)
    print(score)
    dict_scores[score] = name # 将名字和成绩对应存为字典的键值对(注意:这里的成绩是键)
	#注意:可以通过键对值直接创建字典
    list_scores.append(score)#增加需一个个增加,故需在循环里增;
print(list_scores)
list_scores.sort(reverse=True) # reverse,逆行,所以这时列表降序排列,分数从高到低。
print(list_scores)
for i in list_scores:
    result = dict_scores[i] + str(i) + '\n'
    print(result)
    final_scores.append(result)
print(final_scores) # 最终结果
winner_new = open('winner_new.txt','w',encoding='utf-8') 
winner_new.writelines(final_scores)
winner_new.close()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值