gpt4 book ai didi

python修改可变迭代器

转载 作者:太空宇宙 更新时间:2023-11-03 10:50:05 25 4
gpt4 key购买 nike

代码如下:

f=open('test.txt')
file=iter(f)

当我这样做

next(file)

它将逐行打印文件。但是当我修改了test.txt文件并保存后,next(file)还是打印了原来的文件内容。

迭代器是否将完整的文件存储在内存中?如果不是,为什么文件的内容没有得到更新?

最佳答案

不,作为迭代器,file 对象仅在内存中存储一​​个前瞻缓冲区,而不是完整的文件。这使得它对大文件非常有效。

因为有这个前瞻缓冲区,对文件所做的更改不会反射(reflect)到 next 方法中。但是,您可以使用 seek 方法清除此缓冲区,以便下次调用 next 方法时将返回更新后的内容:

f.seek(f.tell()) # seek the current position only to clear the look-ahead buffer
print(next(f)) # prints the updated next line from the current position

关于python修改可变迭代器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52306852/

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