我有这段代码
f = open('textfile.txt', 'r')
for line in f:
print line
让我们说textfile.txt就是这样的
1
2
3
4
5
这是如何工作的?它是如何知道文件中的位置的?我知道它是一遍又一遍地打印,但为什么不一遍又一遍地打印整个文件。我不知道f是一个范围。我还假设它知道停在EOF?
答案 0 :(得分:5)
调用open()
返回文件对象 - 即f
是文件对象。
文件对象是它们自己的迭代器,实现next()
方法,允许它们按照你的例子在for
循环中使用。是的,迭代器实现知道停在EOF。
在file.next()
方法详细信息下查看此处的说明:
http://docs.python.org/2/library/stdtypes.html#bltin-file-objects