假设grade.csv文件中存放着选手们的打分成绩,包含序号、专家打分、观众打分。请根据专家打分占40%,观众打分占60%的比例计算选手的总评成绩,并按序号、总评成绩(取两位小数)两列写入另一个文件overall.txt中并在显示写入的文件结果。要求分别用read、readline、readlines、遍历文件、快速列表访问方式读取grade.csv文件实现,程序分别命名为:选手评分-read.py、选手评分-readline.py、选手评分-readlines.py、选手评分-遍历文件.py、选手评分-快速列表访问方式.py、。
输出效果如下所示:
原数据:
序号 专家打分 观众打分
1 82 " 96 "
2 81 " 88 "
3 78 " 63 "
4 95 " 64 "
5 89 " 88 "
6 77 " 87 "
csv格式不对吧,怎么有双引号
遍历文件、快速列表访问方式读取grade.csv这2个没明白什么意思。
下面是read,readline和readlines的实现,注意csv格式内容和代码中一样
'''序号 专家打分 观众打分
1 82 96
2 81 88
3 78 63
4 95 64
5 89 88
6 77 87
'''
lst=[]
with open('grade.csv') as f:
#lst=f.read().split('\n')
#lst=f.readlines()
while True:
l=f.readline().strip()
if not l:
break
lst.append(l)
lst=[x.strip().split() for x in lst]
with open('overall.txt','w',encoding='utf-8') as f:
f.writelines('序号\t总评分')
for item in lst:
total=float(item[1])*0.4+float(item[2])*0.6
f.write(f'\n{item[0]}\t{total:.2f}')
在 Python 中,可以使用 csv 模块来处理 CSV 文件。
首先,需要使用 import csv 导入 csv 模块。
然后,可以使用 csv 模块中的 reader() 函数来读取 CSV 文件中的数据。例如:
import csv
with open('filename.csv', 'r') as csv_file:
csv_reader = csv.reader(csv_file)
for row in csv_reader:
print(row)
这段代码会打开名为 'filename.csv' 的 CSV 文件,并使用 csv.reader() 函数将文件中的数据读取到一个可迭代的对象中。然后,使用 for 循环遍历这个对象,并将每一行数据打印出来。
如果要写入 CSV 文件,可以使用 csv.writer() 函数。例如:
import csv
with open('filename.csv', 'w') as csv_file:
csv_writer = csv.writer(csv_file)
csv_writer.writerow(['column1', 'column2', 'column3'])
csv_writer.writerow(['data1', 'data2', 'data3'])
csv_writer.writerow(['data4', 'data5', 'data6'])
这段代码会打开名为 'filename.csv' 的 CSV 文件,并使用 csv.writer() 函数创建一个 CSV 写入器。然后,使用 csv_writer.writerow() 函数写入一行数据。可以使用多次调用 csv_writer.writerow() 函数来写入多行数据。
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!