鱼C论坛

 找回密码
 立即注册
查看: 1029|回复: 5

[已解决]for in 用法问题

[复制链接]
发表于 2020-7-8 16:05:44 | 显示全部楼层 |阅读模式

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

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

x
file_content = open('文档.txt')
#第一个
for i in file_content:
    print('0 ')

#第二个
for i in file_content:
    print('1')

#第三个
for i in range(2):
    print('2')

#第四个
for i in range(2):
    print('3')



这里文档文件在里面随便打点东西进去
为什么第二个没有任何输出
最佳答案
2020-7-8 16:11:29




因为 for 循环过程中是以行为单位读取文件内容的,每读取一次,文件指针就移动到下一行开始的位置

这也是为什么每次循环都不是读取同一行的原因,而第一次 for 循环会将文件的每一行全部读取完才结束

导致文件对象的指针移动到了末尾,所以第二个 for 循环时候,文件对象 file_content 的文件指针已经在末尾了

导致 这个for 循环 循环了个空气,所以没有进入循环



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

使用道具 举报

发表于 2020-7-8 16:11:29 | 显示全部楼层    本楼为最佳答案   




因为 for 循环过程中是以行为单位读取文件内容的,每读取一次,文件指针就移动到下一行开始的位置

这也是为什么每次循环都不是读取同一行的原因,而第一次 for 循环会将文件的每一行全部读取完才结束

导致文件对象的指针移动到了末尾,所以第二个 for 循环时候,文件对象 file_content 的文件指针已经在末尾了

导致 这个for 循环 循环了个空气,所以没有进入循环



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

使用道具 举报

发表于 2020-7-8 16:11:36 | 显示全部楼层
文档.txt是空文件?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-8 16:21:14 | 显示全部楼层
Twilight6 发表于 2020-7-8 16:11
因为 for 循环过程中是以行为单位读取文件内容的,每读取一次,文件指针就移动到下一行开始的位置
...

循环了个空气就很真实了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-8 16:23:20 | 显示全部楼层
yhhpf 发表于 2020-7-8 16:21
循环了个空气就很真实了

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

使用道具 举报

发表于 2020-7-8 16:30:32 | 显示全部楼层
因为你打开读完后,读到尾了,再读也是从尾开始的。

关闭后再打开就可以了,每次for循环之间插一个 file_content.close().
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-20 01:54

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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