我有一个 4GB 的大文件,当我尝试读取它时,我的计算机挂起了。所以我想一块一块地阅读它,在处理每一块之后将处理过的块存储到另一个文件中并读取下一块。
有什么方法可以 yield
这些片段吗?
我很想有一个 懒惰的方法。
原文由 Pratik Deoghare 发布,翻译遵循 CC BY-SA 4.0 许可协议
我有一个 4GB 的大文件,当我尝试读取它时,我的计算机挂起了。所以我想一块一块地阅读它,在处理每一块之后将处理过的块存储到另一个文件中并读取下一块。
有什么方法可以 yield
这些片段吗?
我很想有一个 懒惰的方法。
原文由 Pratik Deoghare 发布,翻译遵循 CC BY-SA 4.0 许可协议
2 回答5.3k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
4 回答1.5k 阅读✓ 已解决
3 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
2 回答960 阅读✓ 已解决
1 回答1.8k 阅读✓ 已解决
要编写惰性函数,只需使用
yield
:另一种选择是使用
iter
和辅助函数:如果文件是基于行的,则文件对象已经是行的惰性生成器: