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

发布于 2021-02-02 23:14:03

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

>>> 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()文件进行编辑,然后再次将其打开以进行读取!那是正常行为吗?

关注者
0
被浏览
107
1 个回答
  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。

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

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

    例如,

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

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



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看