【发布时间】: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 循环 for line in file 之前使用 readline 后没有遍历所有行?在读取某些行后如何实现 for 循环将遍历文件中的所有行?
file = open("file.xyz", "r")
first_line = file.readline()
for line in file:
x,y,z = line.split()
【问题讨论】:
从文件中读取会更改指向文件的“内部指针”以进行下一次读取操作。试试:
file.seek(0)
在 for 循环之前。
【讨论】:
因为文件知道它的位置file.tell。
【讨论】:
要返回file 的开头,请使用
file.seek(0)
至于为什么会发生这种情况:从文件中读取有点像播放磁带,读取磁头会沿着磁带移动。从文件中读取一行后,“读取头”现在位于下一行的开头。使用seek 可以让您“倒回”和“快进”到指定点。
参考:Python docs。
【讨论】: