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

Che*_*hie -3 python

我正在研究一个使用txt文件的Python项目.它会读取一些非常长的文本文件(几千行 - 但我可以将其更多 - 那是UTF-8编码的)放入一个列表中,对它们进行大量操作,然后将它们写回文件.

我想知道这是否是做这种事的正确方法.也就是说,Python可以在内存中保存的文本数量是多少?我是否应该考虑到限制(如果是这样,我该如何考虑它)?

Jan*_*sky 6

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

Python恰好相反 - 循环遍历许多项(文件,记录,等等),同时只在内存中保存真正相关的内容.

有一些概念称为迭代器和生成器,一个示例是xrange.range(large_number)不需要创建所有数字,而是需要保留在内存中,xrange(large_number)逐个提供数字,仅在内存中保留生成下一个数字所需的数字.

您可以通过相同的方式读取文件并处理其内容.当然,如果您需要来自更广泛的上下文的信息,您需要从某个地方获取信息,但一般来说,许多真实的用例并不要求您拥有全部内存而不是总结以获得正确的结果.

对于进一步的工作,我会指出您遵循以下条款:

  • 发电机
  • 迭代器
  • itertools

所有这些都在Python文档中,并且在网络上有很多很好的教程.