Python输入/输出解释

Python输入/输出解释,python,file,input,output,readline,Python,File,Input,Output,Readline,我理解/如何打印文本文件的前三行,但我不完全确定原因。既然我正在打印我的\u file.readline(),为什么它不打印所有三次的第一行呢?Python读取文件并将其存储在变量my\u file中,指针位于文件开头或(0,0)。当您开始执行readline时,python将从文件中读取一行,然后“使用”它。换句话说,当前指针现在将在下一行等待,因此当您调用readline时,它将获得下一行 希望有帮助 与您所期望的相同之处是: my_file = open("text.txt",

我理解/如何打印文本文件的前三行,但我不完全确定原因。既然我正在打印我的\u file.readline(),为什么它不打印所有三次的第一行呢?

Python读取文件并将其存储在变量
my\u file
中,指针位于文件开头或
(0,0)
。当您开始执行
readline
时,python将从文件中读取一行,然后“使用”它。换句话说,当前指针现在将在下一行等待,因此当您调用
readline
时,它将获得下一行

希望有帮助

与您所期望的相同之处是:

      my_file = open("text.txt", "r")
      print my_file.readline()
      print my_file.readline()
      print my_file.readline()
      my_file.close()

在上述情况下,
seek(0,0)
调用会在每次
readline
之后将指针的位置重置到文件的开头,因此在这种情况下,您将打印第一行3次。

大多数其他语言也会这样做。从文件中读取会前进到当前文件位置。注意,这是标准的“顺序读取”。每次连续读取都会选择一个新的片段,该片段遵循之前已读取的内容,若您需要文件的特定片段,则需要将其“倒带”到适当的位置。如果您想像访问变量一样访问文件,请查看
mmap
,它将文件映射到内存地址,使其像RAM一样可访问。
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()