当前目录下文件data.txt中存放若干学生的成绩,每个学生的成绩占一行,学生姓名与成绩用空格分隔,编写程序读取所有整数,将其按成绩降序排序后再写入文本文件result.txt中。
时间: 2024-01-01 21:07:03 浏览: 131
可以使用以下代码实现:
```python
# 读取文件中的数据
with open('data.txt', 'r') as f:
lines = f.readlines()
# 提取学生的成绩并排序
scores = []
for line in lines:
parts = line.strip().split(' ')
score = int(parts[-1])
scores.append(score)
scores.sort(reverse=True)
# 将排序后的成绩写入文件
with open('result.txt', 'w') as f:
for score in scores:
f.write(str(score) + '\n')
```
这里使用了 Python 内置的文件读写操作,其中 `with open(...) as f:` 语句可以自动关闭文件,避免了手动关闭文件时可能出现的错误。读取文件时,使用 `readlines()` 函数读取文件中的所有行,并使用 `strip()` 函数删除每行的空白符,再使用 `split()` 函数将每行按空格分隔为多个部分,其中最后一个部分即为该学生的成绩。将所有成绩存储在一个列表 `scores` 中,并使用 `sort()` 函数将成绩按降序排序。最后,使用 `with open(...) as f:` 语句将排序后的成绩写入新的文件中。
相关问题
设有一个文本文件data.txt,存放了若干以空格分隔的整数,将其降序排序后写到文件data_desc.txt中,数据仍然以空格分隔
可以使用Python语言来实现这个功能。代码如下:
```python
# 读取数据文件
with open('data.txt', 'r') as f:
data = f.read().split()
# 将字符串转换为整数并进行降序排序
data = sorted(map(int, data), reverse=True)
# 将结果写入新文件
with open('data_desc.txt', 'w') as f:
f.write(' '.join(map(str, data)))
```
解释一下代码:
首先使用`with open()`语句打开数据文件`data.txt`,并使用`read()`方法读取其中的内容。由于文件中每个数之间用空格分隔,所以使用`split()`方法将其切分成一个字符串列表。
接下来,使用`map()`函数将列表中的每个字符串转换为整数,并使用`sorted()`函数进行降序排序,得到一个新的整数列表。
最后,使用`with open()`语句打开新的文件`data_desc.txt`,并使用`write()`方法将排序后的整数列表转换为字符串,用空格分隔后写入文件中。
设有一个文本文件data.txt,存放了若干以逗号分隔的整数,求所有整数的平均值,将结果写到文件result.txt中。
可以使用Python来实现这个需求,具体步骤如下:
1. 打开data.txt文件并读取其中的数据。
2. 将读取的数据转换成整数列表,并计算出平均值。
3. 打开result.txt文件并将平均值写入其中。
下面是代码示例:
```python
# 打开data.txt文件并读取其中的数据
with open('data.txt', 'r') as f:
data = f.read()
# 将读取的数据转换成整数列表,并计算出平均值
numbers = [int(x) for x in data.split(',')]
avg = sum(numbers) / len(numbers)
# 打开result.txt文件并将平均值写入其中
with open('result.txt', 'w') as f:
f.write(str(avg))
```
注意:上述代码假设data.txt中每行只有一个以逗号分隔的整数,如果每行有多个整数需要进行相应的修改。