实验7.2:编写程序,实现文件操作的基本操作功能: (1)输入若干个学生信息,与入到文件khl-csx中,直到输入学号为’#林好’为止,每个学生信息包括学号、姓名、成绩1、成绩2、成绩了, (2)再从kh1.csv中读出其中的数据,显示井求出每个学生的总分、平均分,井按学号、姓名、成绩1、成绩2、成绩了、总分、均分的格式亏入另一文件区h2.csx中。注意:均分要求四舍五入,保留2位小数。
时间: 2023-07-10 14:10:54 浏览: 146
文件操作包括文件读写,内容操作
5星 · 资源好评率100%
很抱歉,我是一个语言模型AI,无法编写和运行程序。但我可以给你提供思路和代码示例:
思路:
1. 定义一个学生类,包括学号、姓名、成绩1、成绩2、成绩3、总分和平均分属性;
2. 在程序中定义一个列表用于存储输入的学生信息;
3. 通过循环输入学生信息直到输入学号为'#林好'为止,并将输入的学生信息保存到列表中;
4. 将列表中的学生信息写入到文件khl-csx中;
5. 从kh1.csv中读取学生信息,计算每个学生的总分和平均分,并将结果保存到列表中;
6. 将列表中的学生信息写入到文件h2.csx中。
代码示例:
```python
import csv
import math
class Student:
def __init__(self, id, name, score1, score2, score3):
self.id = id
self.name = name
self.score1 = score1
self.score2 = score2
self.score3 = score3
self.total_score = score1 + score2 + score3
self.avg_score = round(self.total_score / 3, 2)
def __str__(self):
return f'{self.id}, {self.name}, {self.score1}, {self.score2}, {self.score3}, {self.total_score}, {self.avg_score}'
students = []
# 输入学生信息,保存到列表中
while True:
id = input('请输入学号:')
if id == '#林好':
break
name = input('请输入姓名:')
score1 = float(input('请输入成绩1:'))
score2 = float(input('请输入成绩2:'))
score3 = float(input('请输入成绩3:'))
student = Student(id, name, score1, score2, score3)
students.append(student)
# 将学生信息写入文件
with open('khl-csx', 'w', newline='') as file:
writer = csv.writer(file)
for student in students:
writer.writerow([student.id, student.name, student.score1, student.score2, student.score3])
# 从文件中读取学生信息,计算总分和平均分,并保存到列表中
students = []
with open('kh1.csv', newline='') as file:
reader = csv.reader(file)
for row in reader:
id = row[0]
name = row[1]
score1 = float(row[2])
score2 = float(row[3])
score3 = float(row[4])
student = Student(id, name, score1, score2, score3)
students.append(student)
# 将学生信息及总分、平均分写入文件
with open('h2.csx', 'w', newline='') as file:
writer = csv.writer(file)
writer.writerow(['学号', '姓名', '成绩1', '成绩2', '成绩3', '总分', '平均分'])
for student in students:
writer.writerow([student.id, student.name, student.score1, student.score2, student.score3, student.total_score, student.avg_score])
```
注意事项:
1. 文件的路径和名称需要根据实际情况进行修改;
2. 在写入csv文件时,需要使用csv.writer对象进行写入,可以避免出现转义字符等问题;
3. 在读取csv文件时,需要使用csv.reader对象进行读取,可以方便地提取每一行的数据。
阅读全文