【发布时间】:2015-05-19 20:54:01
【问题描述】:
我需要对现有 Excel 文件中三个学生的分数进行排序,找到他们的最高分数,然后将这些分数从最高到最低输出到一个新的 Excel 文件中。
我了解如何从文件中读取并找到最大值。到目前为止,这是我的代码:
import csv
import operator
file_reader=open("scoreresults.csv","r")
csv_r=csv.reader(file_reader,delimiter=",")
file_writer =open( "score results output.csv","w", newline="")
csv_w=csv.writer(file_writer)
newdata=[]
for row in csv_r:
forename,deposit1,deposit2,deposit3=row
newdata.append(forename)
newdata.append(deposit1)
newdata.append(deposit2)
newdata.append(deposit3)
file=[forename,deposit1,deposit2,deposit3]
maximumn=max(file)
file1=[forename,maximumn]
file1.sort(key=operator.itemgetter(1))
csv_w.writerow([file1])
file_reader.close()
file_writer.close()
我没有在我尝试排序的地方添加位,因为我在那里完全失败了。当我尝试使用 itemgetter 时,我只能打印,不能保存到文件中,并且它从低到高排序。
它的外观示例如下:
name score name score
James 2 should turn into sam 10
sam 10 jane 9
dan 5 dan 5
lee 4 lee 4
jane 9 james 2
【问题讨论】:
-
你不应该。 1) 在一个循环中读取所有输入,2) 调用您的排序例程 3) 在另一个循环中写出您的排序列表?