第二次迭代文件不起作用[重复]

2023-11-27

我在迭代文件时遇到问题。这是我在解释器上输入的内容和结果:

>>> 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语法,它将自动为您关闭文件。

e.g.,

with open('baby1990.html', 'rU') as f:
  for line in f:
     print line

一旦该块执行完毕,该文件就会自动为您关闭,因此您可以重复执行该块,而无需自己显式关闭文件并再次以这种方式读取文件。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

第二次迭代文件不起作用[重复] 的相关文章

随机推荐