my_file = open("text.txt", "r")
print my_file.readline()
print my_file.readline()
print my_file.readline()
my_file.close()
我理解/如何打印出文本文件的前三行,但我并不完全确定为什么。由于我打印出了my_file.readline(),为什么它不打印所有三次的第一行?
答案 0 :(得分:3)
Python读入文件并将其存储在变量my_file
中,指针位于文件的开头或(0, 0)
。当你开始做readline
时,python将从文件中读取一行,然后“消耗”它。换句话说,当前指针现在将在下一行等待,所以当你调用readline
时,它现在将获得下一行。
希望有所帮助
相当于你所期望的那样:
my_file = open("text.txt", "r")
print my_file.readline()
my_file.seek(0, 0)
print my_file.readline()
my_file.seek(0, 0)
print my_file.readline()
my_file.close()
在上述情况下,seek(0, 0)
调用会在每readline
之后将指针的位置重置为文件的开头,因此在这种情况下,您将最终打印第一行3次。