运行到readlines的时候,报MemoryError

运行到readlines的时候,报MemoryError

Traceback (most recent call last):
  File "stat_auth.py", line 57, in ?
    for buff in fLog.readlines():#把radius log的内容保存到rad_log_line数组中
MemoryError


应该是文件过大,读入的行数过多,导致内存不够。
有什么好办法解决吗?
一行行读入或读一定行数处理
用这个吧,
for buff in fLog.xreadlines():
readlines()方法是一次就生成了一个列表
而xreadlines()方法是一个迭代器,
楼上的方法不错。

不行就循环一行一行读取,或者指定长度的读取把。


[Copy to clipboard] [ - ]
CODE:
#!/usr/bin/env python

f=file ('1.py','r')
for x in f:
    print x,

一次读入整个文件肯定会引发内存问题.
try fileinput.
已经把readlines改为xreadlines了,但是还是报同样的错误。
需要读进内存的文本,大概有520万行。这个脚本,读进230万行的文本,是没有问题的。
之所以要把文本读进内存,是为了把文本逐行的转化成数组,再对数组中的元素(也就是文本的行)逐个进行处理。

如果不通过把文本逐行转成数组的方法,大家还有什么好一些的方法可以方便的对文本逐行进行处理吗?
读入数组前,能不能过滤下每行的数据,提取真正有用的信息,因为数据量太大了,即使520w个四字节整数都有19MB多啊
你要对文本进行什么处理?

象我前面给出的例子,读一行,扔一行,用的内存非常少。但如果你处理必须把全部行都读入,同时操作,那无论用什么方法读入,结果都是一样的。

现在你要考虑的是如何改进你的文本处理方式,而不是读入方式。

另外,python 里有数组对象吗?