python可以保存在内存中的字符限制

The limit of characters python could hold in memory

本问题已经有最佳答案,请猛点这里访问。

我正在开发一个使用txt文件的python项目。它会将一些非常长的文本文件(几千行——但我可以更进一步说——是UTF-8编码的)读取到一个列表中,对它们进行大量的操作,然后将它们写回一个文件。

我想知道这是不是做这种事的正确方法。也就是说,使用这个数量的文本,python可以在内存中保存的文本的限制是可以达到的吗?我是否应该考虑到达到限额(如果是,我如何考虑)?


您正确地认识到,在内存中保存许多文件的内容有其自身的成本和限制。

python正好相反,它在许多项(文件、记录、任何东西)之间循环,而在内存中只保存真正相关的内容。

有一些概念称为迭代器和生成器,其中一个示例是xrangerange(large_number)不需要创建所有的数字,而是需要保存在内存中,xrange(large_number)一个接一个地提供数字,在内存中只保留生成下一个数字所需的内容。

与读取文件和处理其内容的方式相同。当然,如果您需要更广泛的上下文中的信息,您需要从某个地方获得它,但是一般来说,许多实际的用例并不要求您在内存中拥有所有的东西,而需要对所有的东西进行总结以获得正确的结果。

关于进一步的工作,我将向您指出以下条款:

  • 发电机
  • 迭代器
  • itertools模块

所有这些都在Python文档中,并且在Web上有许多不错的教程。