城中城 发表于 2020-7-8 16:05:44

for in 用法问题

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')



这里文档文件在里面随便打点东西进去
为什么第二个没有任何输出

Twilight6 发表于 2020-7-8 16:11:29





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

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

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

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



qiuyouzhi 发表于 2020-7-8 16:11:36

文档.txt是空文件?

yhhpf 发表于 2020-7-8 16:21:14

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

循环了个空气就很真实了{:10_256:}

Twilight6 发表于 2020-7-8 16:23:20

yhhpf 发表于 2020-7-8 16:21
循环了个空气就很真实了

哈哈 我也觉得

heidern0612 发表于 2020-7-8 16:30:32

因为你打开读完后,读到尾了,再读也是从尾开始的。

关闭后再打开就可以了,每次for循环之间插一个 file_content.close().
页: [1]
查看完整版本: for in 用法问题