gpt4 book ai didi

python - iter(fp.readline, '' ) 中的行而不是 fp : 中的行

转载 作者:行者123 更新时间:2023-12-02 20:15:45 26 4
gpt4 key购买 nike

我在 Built-in Functions — Python 3.7.0 documentation 中阅读了内置函数 iter 的示例

with open('mydata.txt') as fp:
for line in iter(fp.readline, ''):
process_line(line)

我无法弄清楚与以下内容相比有什么优势:

with open('mydata.txt') as fp:
for line in fp:
process_line(line)

您能提供一些提示吗?

最佳答案

两者都会迭代生成器,而不将整个文件加载到内存中,但 iter() 版本演示了 iter() 第二个参数的使用,“哨兵”。

来自文档:

if the value returned is equal to sentinel, StopIteration will be raised

因此这段代码将从文件中读取,直到一行等于 '' 然后停止。

这是一个奇怪的例子,因为文件中的所有行末尾都会有一个换行符,因此无论如何这只会在文件末尾触发(如果有的话)。

关于python - iter(fp.readline, '' ) 中的行而不是 fp : 中的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52446415/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com