描述
在附件salary.in中存储了员工一季度1,2,3月的收入,编写程序计算一季度的总收入,并将结果按总收入降序写至salary.out文件。文件
格式
输入
salary.in文件,csv格式,utf-8编码
输出
salary.out文件,csv格式,utf-8编码
样例
salary.in文件内容
工号,1月,2月,3月
5101,18836,14436,7126
5102,19938,16542,11393
5103,19378,7600,10038
5104,5738,7646,10380
5105,19338,14081,8103
5106,11020,10326,6758
5107,18047,7297,10500
5108,9751,18908,8086
5109,12806,19817,5213
5110,15984,5373,5478
salary.out文件内容
工号,1月,2月,3月,一季度总收入
5102,19938,16542,11393,47873
5105,19338,14081,8103,41522
5101,18836,14436,7126,40398
5109,12806,19817,5213,37836
5103,19378,7600,10038,37016
5108,9751,18908,8086,36745
5107,18047,7297,10500,35844
5106,11020,10326,6758,28104
5110,15984,5373,5478,26835
5104,5738,7646,10380,23764
import csv
with open("salary.in", "rt", encoding="utf-8") as fid:
data = []
tex = fid.readline().strip()
for line in fid:
it = line.strip().split(",")
x = 0
for i in range(1, len(it)):
x = int(it[i]) + x
it.append(str(x))
data.append(it)
data.sort(key=lambda x: x[4], reverse=True)
# sort排序函数中传入参数key,key的值为匿名函数lambda的返回值,匿名函数中的第一个x为参数,x[4]为函数表达式,4指的是取a的子元素的第五个值
# reverse:排序规则,reverse=True 降序, reverse=False 升序(默认)
# 以写方式打开文件。注意添加 newline="",否则会在两行数据之间都插入一行空白。
with open("salary.out", "w", encoding="utf-8", newline="") as fid:
w = csv.writer(fid)
fid.write(tex+",一季度总收入\n")
w.writerows(data)