python里面的f1.seek()
时间: 2023-11-09 21:34:53 浏览: 60
f1.seek()是Python中文件对象的方法,用于将文件指针(光标)移动到文件中的指定位置。
语法:
f1.seek(offset[, whence])
参数说明:
- offset:移动的字节数,可以为负数,表示从文件末尾开始计算移动的字节数。
- whence:可选参数,默认值为0,表示从文件开头开始计算移动的字节数;1表示从当前位置开始计算移动的字节数;2表示从文件末尾开始计算移动的字节数。
示例:
假设f1是已打开的文件对象。
# 将文件指针移动到文件开头
f1.seek(0)
# 将文件指针移动到文件末尾
f1.seek(0, 2)
# 将文件指针移动到当前位置后面的第10个字节处
f1.seek(10, 1)
# 将文件指针移动到文件开头后面的第20个字节处
f1.seek(20)
相关问题
代码生成 Python编写程序,输入诗人姓名,显示该诗人所写的诗的标题,以及作品数,如图所示。如果该诗人没有作品,显示无作品。要求能够循环输入诗人姓名进行查找,直到输入空串为止。如果该查询完一位诗人后需要通过f1.seek(0)将文件指针移到文件的开始处
好的,以下是实现该功能的 Python 代码:
```python
def search_poet():
while True:
name = input("请输入诗人姓名:")
if not name:
break
found = False
with open("poems.txt", "r") as f1:
for line in f1:
if name in line:
found = True
title, count = line.strip().split(":")
print(f"诗人:{name} 作品:{title} 作品数:{count}")
break
if not found:
print(f"诗人:{name} 无作品")
f1.seek(0)
```
假设诗人姓名和作品信息存储在文件 `poems.txt` 中,每一行格式为 `诗人姓名:作品标题:作品数`,如下所示:
```
李白:将进酒:10
李白:静夜思:20
杜甫:登高:5
白居易:赋得古原草送别:8
```
在函数中,我们通过读取文件 `poems.txt`,逐行查找是否存在该诗人的作品信息。如果找到了,则解析出作品标题和作品数,并输出结果;如果未找到,则输出无作品的提示。最后,通过 `f1.seek(0)` 将文件指针移到文件的开始处,以便下一次查询。
在唐诗.txt文件,如下图所示。每首诗的标题为序号诗人冒号诗名。编写程序,输入诗人姓名,显示该诗人所写的诗的标题,以及作品数,如图所示。如果该诗人没有作品,显示无作品。要求能够循环输入诗人姓名进行查找,直到输入空串为止。提示:查询完一位诗人后需要通过f1.seek(0)将文件指针移到文件的开始处
对于这个问题,我可以提供 Python 的代码实现:
```
import os
file_path = '唐诗.txt'
def search_poet(name):
with open(file_path, 'r', encoding='utf-8') as f1:
count = 0
for line in f1:
if name in line:
count += 1
print(line.strip())
if count == 0:
print('无作品')
print('作品数:', count)
while True:
name = input('请输入诗人姓名(输入空串退出):')
if name == '':
break
search_poet(name)
with open(file_path, 'r', encoding='utf-8') as f1:
f1.seek(0)
```
这段代码会打开名为 `唐诗.txt` 的文件,然后通过循环输入的诗人姓名,在文件中查找该诗人所写的诗的标题,并计算作品数。如果该诗人没有作品,则会输出“无作品”。最后,需要通过 `f1.seek(0)` 将文件指针移到文件的开始处,以便下一轮循环查找。
相关推荐
![](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)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![mp4](https://img-home.csdnimg.cn/images/20210720083504.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)