为什么在使用readline之前,文件中的行的python循环没有通过所有行?如何在读取循环的某些行之后实现该操作将遍历文件中的所有行?
file = open("file.xyz", "r")
first_line = file.readline()
for line in file:
x,y,z = line.split()
答案 0 :(得分:2)
从文件读取会将“内部指针”更改为文件以进行下一次读取操作。尝试:
file.seek(0)
在for循环之前。
答案 1 :(得分:1)
因为文件知道其位置file.tell
。
答案 2 :(得分:1)
要返回file
的开头,请使用
file.seek(0)
至于为什么会发生这种情况:从文件中读取有点像播放磁带,读取磁头沿着磁带移动。从文件中读取一行后,“读头”现在位于下一行的开头。使用seek
可让您“快退”和“快进”到指定的点。
参考:Python docs。