【问题标题】:Why in python loop for line in file is not going through all lines after using readline before?为什么在 python 循环 for line in file 之前使用 readline 后没有遍历所有行?
【发布时间】:2014-02-06 12:32:36
【问题描述】:

为什么在 python 循环 for line in file 之前使用 readline 后没有遍历所有行?在读取某些行后如何实现 for 循环将遍历文件中的所有行?

file = open("file.xyz", "r")
first_line = file.readline()

for line in file:
  x,y,z = line.split()

【问题讨论】:

    标签: python readline


    【解决方案1】:

    从文件中读取会更改指向文件的“内部指针”以进行下一次读取操作。试试:

    file.seek(0)
    

    在 for 循环之前。

    【讨论】:

      【解决方案2】:

      因为文件知道它的位置file.tell

      【讨论】:

        【解决方案3】:

        要返回file 的开头,请使用

        file.seek(0)
        

        至于为什么会发生这种情况:从文件中读取有点像播放磁带,读取磁头会沿着磁带移动。从文件中读取一行后,“读取头”现在位于下一行的开头。使用seek 可以让您“倒回”和“快进”到指定点。

        参考:Python docs

        【讨论】:

          猜你喜欢
          • 2015-12-23
          • 1970-01-01
          • 2017-02-03
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-11-25
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多