当for循环的序列部分是文件时,Python如何知道它必须逐行读取文件?

2024-10-02 00:31:48 发布

您现在位置:Python中文网/ 问答频道 /正文

在这里,我打开sys.argv列表的第二个值进行读取,将文件对象存储在变量f中,然后逐行处理文件:

f = open(sys.argv[1])
for line in f:

Python如何知道它必须逐行读取文件?起初我认为line本身有某种特殊的含义,但我也可以做for xine in f:,它仍然有效。Python知道如果for循环的序列部分是文件(或file对象),它必须逐行读取文件吗?你知道吗


Tags: 文件对象in列表forsysline序列
1条回答
网友
1楼 · 发布于 2024-10-02 00:31:48

Does Python know that it has to read a file line by line if the sequence part of the for loop is a file(or file object)?

是的,在Python中文件对象就是这样实现的。你知道吗

file对象是迭代器对象,其next方法返回一行。把它放在for中只需反复调用next方法,得到的是文件的行,这些行被依次分配给循环变量:linexine或任何其他有效的分配目标。你知道吗


for line in f:
    # do something with line

等同于:

line = next(f)
# do something with line
line = next(f)
# do something with line
...
# repeat until EOF

相关问题 更多 >

    热门问题