写函数,将score.txt文件按总分从高到低输出学生信息到文件sorted_total.txt文件中,按姓名从小到大输出学生信息到文件sorted_name.txt文件中
时间: 2024-03-05 09:53:46 浏览: 84
Call-and-order-one.zip_调用txt文件
好的,以下是示例代码:
```python
def sort_by_total(input_file, output_file):
# 读取文件中的学生成绩
with open(input_file, 'r') as f:
lines = f.readlines()
# 将每行数据转化为元组,方便排序
students = [tuple(line.strip().split()) for line in lines]
# 按总分从高到低排序
students.sort(key=lambda x: sum(map(int, x[1:])), reverse=True)
# 将排序结果输出到文件
with open(output_file, 'w') as f:
for student in students:
f.write(' '.join(student) + '\n')
def sort_by_name(input_file, output_file):
# 读取文件中的学生成绩
with open(input_file, 'r') as f:
lines = f.readlines()
# 将每行数据转化为元组,方便排序
students = [tuple(line.strip().split()) for line in lines]
# 按姓名从小到大排序
students.sort(key=lambda x: x[0])
# 将排序结果输出到文件
with open(output_file, 'w') as f:
for student in students:
f.write(' '.join(student) + '\n')
```
其中,`input_file`为需要排序的文件路径,`output_file`为排序结果输出的文件路径。你可以将它们替换为实际路径。比如,如果你的文件名为`score.txt`,排序后的文件名为`sorted_total.txt`和`sorted_name.txt`,那么可以这样调用函数:
```python
sort_by_total('score.txt', 'sorted_total.txt')
sort_by_name('score.txt', 'sorted_name.txt')
```
注意,这里假设输入文件中每行数据的格式为“姓名 成绩1 成绩2 ... 成绩n”,用空格分隔。如果你的数据格式不一样,需要相应地修改代码。
阅读全文