我有一个文件“list1”,其中包含姓名、注释1、注释2,如下所示:
DUPOND, John, 12, 10
JAMES, Fil, 8, 10
KYLE, Gregor, 17, 7
我想编写一个Python脚本来在另一个名为“list2”的文件中显示“list1”的内容 但已排序并使用 2 个注释的平均值,格式为:姓氏、姓名、注释 1、注释 2、平均值 像这样:
John, DUPOND, 12, 14, 13
JAMES, Fil, , 8, 10, 9
KYLE, Gregor, 17, 7, 12
您有什么建议吗?
我已经测试过这段代码,它只在方括号中显示我的文件的内容,我怎样才能取2个值的平均值并将其放入另一个文件中?
import sys
import csv
with open(sys.argv[1], newline='') as f:
reader = csv.reader(f)
for row in reader:
statistics.mean(xs)
print(row)
这里涉及的步骤是:
import sys
import csv
import statistics
with open(sys.argv[1], newline='') as inf, open(sys.argv[2], 'w', newline='') as outf:
writer = csv.writer(outf)
for name, surname, *values in csv.reader(inf): # Read name first, surname second, then collect values
writer.writerow([surname, name, *values, statistics.mean(map(int, values))]) # Write surname first, then name, then values, then average
即使值的数量不是两个,这也有效,因为解包通过将所有额外值收集到
values
list
中来处理所有额外值,无论有多少。