用python生成一段代码读取txt文件,对学生成绩继续排序,代码用模块函数实现
时间: 2023-12-10 19:39:20 浏览: 81
好的,以下是一个示例代码,其中使用了Python自带的`sorted()`函数对学生成绩进行排序,使用了`os.path`模块来获取文件路径。
```python
import os
def read_grade_file(file_path):
"""
读取学生成绩文件,并返回学生名字和成绩列表
"""
with open(file_path, 'r', encoding='utf-8') as f:
lines = f.readlines()
names = []
grades = []
for line in lines:
name, grade = line.strip().split()
names.append(name)
grades.append(int(grade))
return names, grades
def sort_grades(file_path):
"""
对学生成绩进行排序,并输出排名
"""
names, grades = read_grade_file(file_path)
sorted_grades = sorted(list(zip(names, grades)), key=lambda x: x[1], reverse=True)
for i, (name, grade) in enumerate(sorted_grades):
print(f'第{i+1}名:{name},成绩:{grade}')
if __name__ == '__main__':
file_path = os.path.join(os.path.dirname(__file__), 'grades.txt')
sort_grades(file_path)
```
需要注意的是,以上代码中的`grades.txt`文件应该与代码文件放在同一目录下,并且文件中每行应包含一个学生的姓名和成绩,用空格分隔。例如:
```
张三 90
李四 80
王五 95
赵六 70
```
运行以上代码后,会输出每个学生的排名和成绩,例如:
```
第1名:王五,成绩:95
第2名:张三,成绩:90
第3名:李四,成绩:80
第4名:赵六,成绩:70
```
阅读全文