当前目录下文件data.txt中存放若干学生的成绩,每个学生的成绩占一行,学生姓名与成绩用空格分隔,编写程序读取所有整数,将其按成绩降序排序后再写入文本文件result.txt中。(文件名:sort.py)
时间: 2024-01-02 10:02:17 浏览: 27
好的,这是一个文件I/O操作,可以使用Python内置的文件读写函数来实现。以下是代码实现:
```python
with open('data.txt', 'r') as f:
data = f.readlines()
scores = []
for line in data:
score = int(line.strip().split()[1])
scores.append(score)
scores.sort(reverse=True)
with open('result.txt', 'w') as f:
for score in scores:
f.write(str(score) + '\n')
```
代码解释:
1. 使用`with open()`语句来打开文件,可以自动关闭文件。
2. `readlines()`函数将文件读入到一个列表中,每个元素对应文件中的一行。
3. 循环遍历列表,使用`strip()`和`split()`函数来获取每一行中的成绩。
4. 将成绩存入一个列表`scores`中,并使用`sort()`函数进行降序排序。
5. 使用`with open()`语句再次打开文件,将排好序的成绩写入到`result.txt`文件中。
希望这个回答能够解决你的问题,如有疑问请随时提出。
相关问题
当前目录下文件data.txt中存放若干学生的成绩,每个学生的成绩占一行,学生姓名与成绩用空格分隔,编写程序读取所有整数,将其按成绩降序排序后再写入文本文件result.txt中。
可以使用以下代码实现:
```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()`方法将排序后的整数列表转换为字符串,用空格分隔后写入文件中。
相关推荐
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)