鱼C论坛

 找回密码
 立即注册
查看: 1102|回复: 11

请问为什么指针不能回到文本开头?

[复制链接]
发表于 2023-12-17 09:04:57 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
大家好,我有一个如下的文本文档,需要从头开始读取文本,我使用了如下代码
with open('L1_1.txt') as f:
    f.seek(0, 0)
    for line in f:
        print(line)
本来应该是从文本的第一行开始读取,也就是:
LocalTime=21:48:16.153,Message=L1DB,MarketTime=08:46:10.794......

但实际上代码是从文本中间开始读取的,而且每次开始读取的位置都还不一样。截图如下
请问这是为什么?我明明已经使用了f.seek()把指针移动到开头位置,而且用f.tell()查看的话结果确实是0,那么就应该是在文本开头啊

da.JPG

麻烦各位大大帮忙看看,谢谢!

L1_1.txt

1.86 MB, 下载次数: 2

文本文档

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-12-17 09:05:12 | 显示全部楼层
你的代码是没有问题的,f.seek(0, 0)确实是将文件指针移动到了文本的开头位置,但是在读取文件的时候,文件指针会随着读取操作自动向后移动。所以在for循环中每次读取一行后,文件指针会自动移动到下一行的位置。

你可以在循环外使用f.tell()打印文件指针的位置,可以看到它在循环开始时是0,在每次循环结束后递增的。

如果你想让文件指针在循环结束后回到开头位置,可以将文件对象重新赋值给一个变量,然后在循环结束后再次使用seek方法将文件指针移动到开头位置,如下所示:

with open('L1_1.txt') as f:
    for line in f:
        print(line)
    f.seek(0, 0)
    for line in f:
        print(line)

这样就可以在第二个循环中从文件开头位置开始读取了。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2023-12-17 10:39:04 | 显示全部楼层

回帖奖励 +1 鱼币

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-12-18 10:54:06 | 显示全部楼层
顶一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-12-18 15:12:09 | 显示全部楼层

回帖奖励 +1 鱼币

一般就不需要操作指针,一打开后的本来就是从第一行第一个字节开始的读取的。
你说它从中间开始读,可能是你前面操作了指针位置,然后 文件流 又没 close() 的缘故。。
试试重启IDE,只用
with open('L1_1.txt') as f:
    # f.seek(0, 0)  # 不需要
    for line in f:
        print(line)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-12-18 19:45:57 | 显示全部楼层
阿奇_o 发表于 2023-12-18 15:12
一般就不需要操作指针,一打开后的本来就是从第一行第一个字节开始的读取的。
你说它从中间开始读,可能是 ...

谢谢回复,我发现代码是正常的,因为直接用python自带的IDLE运行时,文本是直接从头开始读取的,只有在pycharm里读取时才会从中途开始读,机器人说这是pycharm的配置问题引起的,给了一个更改配置的步骤
1. 打开 PyCharm,并选择菜单栏中的 "Run" -> "Edit Configurations"。
2. 在弹出的对话框中,选择你的运行配置文件。
3. 在右侧的 "Configuration" 标签页中,找到 "Execution" 部分。
4. 在 "Execution" 部分,将 "Run with Python console" 的选项取消勾选。
5. 确定保存,并重新运行代码。

参考这个之后问题还是没解决,不知道哪儿没对
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-1-5 22:16:23 | 显示全部楼层

回帖奖励 +1 鱼币

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-1-5 22:30:50 | 显示全部楼层

回帖奖励 +1 鱼币

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-1-9 09:16:13 | 显示全部楼层
育碧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-1-14 23:43:57 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

头像被屏蔽
发表于 2024-1-27 00:04:07 | 显示全部楼层

回帖奖励 +1 鱼币

提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

头像被屏蔽
发表于 2024-2-3 01:22:17 | 显示全部楼层

回帖奖励 +1 鱼币

提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-14 16:08

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表