3

我有这段代码

f = open('textfile.txt', 'r')
for line in f:
    print line

让我们说 textfile.txt 是这样的

1
2
3
4
5

这是如何运作的?它如何知道它在文件中的位置?我知道它正在一遍又一遍地打印,但为什么不一遍又一遍地打印整个文件。我不明白 f 是一个范围。我还假设它知道在 EOF 处停止?

4

1 回答 1

5

调用open()返回一个文件对象——即f是一个文件对象。文件对象是它们自己的迭代器,实现该next()方法,允许for根据您的示例在循环中使用它们。是的,迭代器实现知道在 EOF 处停止。看看这里的描述,在file.next()方法细节下: http: //docs.python.org/2/library/stdtypes.html#bltin-file-objects

于 2013-09-04T02:07:02.867 回答