The limit of characters python could hold in memory
本问题已经有最佳答案,请猛点这里访问。
我正在开发一个使用txt文件的python项目。它会将一些非常长的文本文件(几千行——但我可以更进一步说——是UTF-8编码的)读取到一个列表中,对它们进行大量的操作,然后将它们写回一个文件。
我想知道这是不是做这种事的正确方法。也就是说,使用这个数量的文本,python可以在内存中保存的文本的限制是可以达到的吗?我是否应该考虑到达到限额(如果是,我如何考虑)?
您正确地认识到,在内存中保存许多文件的内容有其自身的成本和限制。
python正好相反,它在许多项(文件、记录、任何东西)之间循环,而在内存中只保存真正相关的内容。
有一些概念称为迭代器和生成器,其中一个示例是
与读取文件和处理其内容的方式相同。当然,如果您需要更广泛的上下文中的信息,您需要从某个地方获得它,但是一般来说,许多实际的用例并不要求您在内存中拥有所有的东西,而需要对所有的东西进行总结以获得正确的结果。
关于进一步的工作,我将向您指出以下条款:
- 发电机
- 迭代器
itertools 模块
所有这些都在Python文档中,并且在Web上有许多不错的教程。