python读文件问题

python读文件问题

有非常大的一批数据,需要从python输出刀一个txt文件,然后用c++运算,结束后输回python,但是输入输出的时间很长,有什么办法把优化以下么?现在用的是readlines,太慢了因为数据非常大
弄个管道,流一下?
没试过,瞎说的。
readlines是一下子把文件内容全部读入内存,只适合比较小的文件,如果文件比较大,超过了物理内存的大小,那么就要启用虚拟内存,速度自然会非常慢了。应该用readline一行一行读入,或者用read,制定每次读入的字节数。


QUOTE:
原帖由 gucuiwen 于 2008-11-5 09:53 发表
readlines是一下子把文件内容全部读入内存,只适合比较小的文件,如果文件比较大,超过了物理内存的大小,那么就要启用虚拟内存,速度自然会非常慢了。应该用readline一行一行读入,或者用read,制定每次读入的字 ...

楼上说的好,用while循环按行来读取或者按照字节数。这样会快很多。
为啥用c++运算?python不能算?说来听听
import linecache
     for x in range(s):
         data= linecache.getline('data.txt',x+1)
         print data
这样不知可行否?
s 可自定义,比如先打印前500行for x in range(500):,然后再for x in range(500,1000)?

3楼说的很对,我以前处理过一个邮件的问题,里面的邮箱太多了,就先把它们读到一个字符中,read().我也新手,一起学习了。呵呵
try fileinput


QUOTE:
原帖由 gucuiwen 于 2008-11-5 09:53 发表
readlines是一下子把文件内容全部读入内存,只适合比较小的文件,如果文件比较大,超过了物理内存的大小,那么就要启用虚拟内存,速度自然会非常慢了。应该用readline一行一行读入,或者用read,制定每次读入的字 ...

这才是正解!事实上在《Python核心编程》中有对这种情况的说明。
c++的字符串处理比python快很多么?python的字符串处理也不是用c做的么?