Python中逐行文件读取的效率

and*_*rew 8 python performance file

现在我正在编写一些Python代码来处理大量的twitter文件.这些文件非常大,无法容纳在内存中.为了与他们合作,我基本上有两个选择.

  1. 我可以将文件拆分成可以放入内存的较小文件.

  2. 我可以逐行处理大文件,所以我永远不需要将整个文件同时放入内存中.我希望后者易于实现.

但是,我想知道在整个文件中读取内存然后从那里操作它是否更快.似乎从磁盘上逐行读取文件似乎很慢.但话说回来,我并不完全理解这些过程在Python中是如何工作的.有谁知道逐行文件读取是否会导致我的代码比我将整个文件读入内存并从那里操作它更慢?

Gre*_*ill 10

要快速读取文件,请查看mmap模块.这将使整个文件显示为一大块虚拟内存,即使它比可用内存大得多.如果您的文件大于3或4千兆字节,那么您将希望使用64位操作系统(以及64位版本的Python).

我已经为超过30 GB的文件做了这个,效果很好.