Python-第二次遍历文件不起作用

我对文件进行迭代有问题。这是我在解释器上键入的内容和结果:

>>> f = open('baby1990.html', 'rU')

>>> for line in f.readlines():

... print(line)

...

# ... all the lines from the file appear here ...

当我尝试再次遍历同一个打开的文件时,我什么也没得到!

>>> for line in f.readlines():

... print(line)

...

>>>

根本没有输出。为了解决这个问题,我必须对close()文件进行编辑,然后再次将其打开以进行读取!那是正常行为吗?

回答:

是的,这是正常行为。基本上,你是第一次读取文件的末尾(可以像读取磁带一样对它进行图片处理),因此除非你使用f.seek(0)重定位到文件开头的位置进行重置,否则你将无法从文件中读取更多内容。文件,或者将其关闭,然后再次打开,它将从文件的开头开始。

如果你愿意,可以改用with语法,它将自动为你关闭文件。

例如,

with open('baby1990.html', 'rU') as f:

for line in f:

print line

一旦完成该块的执行,文件将自动为你关闭,因此你可以重复执行此块,而无需自己显式关闭文件并以此方式再次读取文件。

以上是 Python-第二次遍历文件不起作用 的全部内容, 来源链接: utcz.com/qa/416131.html

回到顶部