现在我正在编写一些 Python 代码来处理大量的 Twitter 文件。这些文件太大,内存都装不下。要和他们一起工作,我基本上有两种选择。
我可以将文件拆分成适合内存的较小文件。
我可以逐行处理大文件,因此我永远不需要一次将整个文件放入内存。我更喜欢后者以便于实现。
但是,我想知道将整个文件读入内存然后从那里进行操作是否更快。不断地从磁盘逐行读取文件似乎很慢。但话又说回来,我并不完全理解这些过程在 Python 中是如何工作的。有谁知道逐行读取文件是否会导致我的代码比我将整个文件读入内存并从那里操作它更慢?
最佳答案
要真正快速地读取文件,请查看 mmap模块。这将使整个文件显示为一大块虚拟内存,即使它比您的可用 RAM 大得多。如果您的文件大于 3 或 4 GB,那么您需要使用 64 位操作系统(和 64 位 Python 版本)。
我已经为超过 30 GB 的文件完成了此操作,并取得了不错的效果。
关于python - Python逐行读取文件的效率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10460453/