鱼C论坛

 找回密码
 立即注册
查看: 2735|回复: 10

[已解决]二问:Py 小问题,读取文件

[复制链接]
发表于 2021-5-26 17:24:26 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 Peteryo01223 于 2021-5-26 17:27 编辑

二问:以下语句中,Python是怎么知道,每次while读的那一行,即:
data = file.readline()
都往下顺延一个呢?就算有个自动的指针,程序员和python之间,互动时,是如何达成的默契(即:不重复读取同一行,而是往下读)呢?

源代码如下,python 能够完整地、依次读取出data全部行的内容:
data = file.readline()
while data:
    print(data, end='')
    data = file.readline()

file.close()
最佳答案
2021-5-26 19:33:23
本帖最后由 小伤口 于 2021-5-26 19:36 编辑
Peteryo01223 发表于 2021-5-26 18:07
那么,如果设计和修改大型程序时,程序员们自己都记不清、数不清读了几遍、指针目前处于哪里了,怎么办呢 ...


自己写进去内容时,肯定是有规律的,一般不会搞乱吧,如果不清楚位置,可以用tell() 方法,他会返回文件的当前位置,即文件指针当前位置。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-5-26 17:31:25 From FishC Mobile | 显示全部楼层
都一样,读完一行之后,指针自动下移
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-26 17:38:31 From FishC Mobile | 显示全部楼层
这是因为python读取文本采用了文本指针,指针在哪就在哪写,指针在哪,你就只能读取指针后面的东西。

读取一行,指针就在这一行后面,又读取
又在下一行以此类推
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-5-26 18:07:34 | 显示全部楼层
小伤口 发表于 2021-5-26 17:38
这是因为python读取文本采用了文本指针,指针在哪就在哪写,指针在哪,你就只能读取指针后面的东西。

读 ...

那么,如果设计和修改大型程序时,程序员们自己都记不清、数不清读了几遍、指针目前处于哪里了,怎么办呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-26 18:20:04 From FishC Mobile | 显示全部楼层
Peteryo01223 发表于 2021-5-26 18:07
那么,如果设计和修改大型程序时,程序员们自己都记不清、数不清读了几遍、指针目前处于哪里了,怎么办呢 ...

怎么可能,那还要程序员干嘛
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-26 19:33:23 From FishC Mobile | 显示全部楼层    本楼为最佳答案   
本帖最后由 小伤口 于 2021-5-26 19:36 编辑
Peteryo01223 发表于 2021-5-26 18:07
那么,如果设计和修改大型程序时,程序员们自己都记不清、数不清读了几遍、指针目前处于哪里了,怎么办呢 ...


自己写进去内容时,肯定是有规律的,一般不会搞乱吧,如果不清楚位置,可以用tell() 方法,他会返回文件的当前位置,即文件指针当前位置。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-26 21:01:52 | 显示全部楼层
python通过回车分割一行,直到没有字符为止
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-26 23:45:43 | 显示全部楼层
Peteryo01223 发表于 2021-5-26 18:07
那么,如果设计和修改大型程序时,程序员们自己都记不清、数不清读了几遍、指针目前处于哪里了,怎么办呢 ...



程序员和python之间,互动时,是如何达成的默契(即:不重复读取同一行,而是往下读)呢?


readline() 方法,每调用一次,就读取一行文本内容,且会将文件指针移动到下一行起始位置

另外,关于不知道位置时,Python 还有个方法即 tell 方法可以返回当前文件指针所在的位置哈~

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

使用道具 举报

发表于 2021-5-27 07:04:26 | 显示全部楼层
新手初来乍到,学习中啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-5-27 09:06:29 | 显示全部楼层
Py与C。。。 发表于 2021-5-26 21:01
python通过回车分割一行,直到没有字符为止

谢谢指点
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-5-27 09:07:02 | 显示全部楼层
Twilight6 发表于 2021-5-26 23:45
readline() 方法,每调用一次,就读取一行文本内容,且会将文件指针移动到下一行的起始位置

...

好,感谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-9 01:49

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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