为什么我使用.next()会出现内存错误?

时间:2016-06-13 17:04:00

标签: python file-handling memory-management

我试图在python 2.7中解析文本文件。该文件有大约10 ^ 11行,所以我无法将其加载到内存中。

这很好用:

with open('file_name.txt') as f:
     for row in f:
          #Do something...

但是,我并不总是希望在整个文件上运行脚本。我发现这也有效:

max_rows = 10**2
with open('file_name.txt') as f:
     for n in range(max_rows):
         row = f.next()
         #Do something...

但是,如果我设置:

max_rows = 10**9

我收到内存错误。希望能够了解为什么会发生这种情况,这对我来说非常违反直觉。两种脚本方法似乎都应该一次只读取一行文本到内存中。

0 个答案:

没有答案
相关问题