Python 使用';对于';环

Python 使用';对于';环,python,python-3.x,Python,Python 3.x,我有一个很大的文件abc.txt,我想逐行阅读,而不是一次全部阅读。我可以这样做: filename="c:\abc.txt" with open (filename, "r") as fb: for content in fb: # Do something .... 在这里,我一点也不明白。如您所见,“fb”是这里的一个文件指针。即使不使用任何readline或read函数,“for”循环如何在内部直接处理指针 我只是想知道for循环在这里是如何工作的。Python

我有一个很大的文件abc.txt,我想逐行阅读,而不是一次全部阅读。我可以这样做:

filename="c:\abc.txt"
with open (filename, "r") as fb:
    for content in fb:
        # Do something ....
在这里,我一点也不明白。如您所见,“fb”是这里的一个文件指针。即使不使用任何readline或read函数,“for”循环如何在内部直接处理指针


我只是想知道
for
循环在这里是如何工作的。

Python中没有“指针”这样的东西

fb
是一个文件对象。Python中的文件对象是容器类型和生成器。它们实现迭代器协议,当循环时(例如使用for循环),它会从您打开的文件中生成单独的行

如果您想尝试查看引擎盖下发生的情况,请在REPL中尝试以下操作,例如:

f = open("sometextfileyouhave.txt", "r")
file_iter = iter(f)
print(next(file_iter))
print(next(file_iter))
print(next(file_iter))
print(next(file_iter))
# ...
甚至更短:

f = open("sometextfileyouhave.txt", "r")
print(next(f))
print(next(f))
print(next(f))
# ...
1的可能副本<代码>fb不是“文件指针”。它是一个文件对象。2.文件对象是生成程序,在迭代时(通过循环或使用
next
函数)逐行生成文件内容。看到和