On Tue, Aug 17, 2010 at 9:40 AM, Rodrick Brown <rodrick.br...@gmail.com> wrote:
> I have a fairly large file 1-2GB in size that I need to process line by line 
> but I first need to convert the file to text using a 3rd party tool that 
> prints the records also line by line.
>
> I've tried using Popen to do this with no luck. I'm trying to simulate
>
> /bin/foo myfile.dat
>
> And as the records are being printed do some calculations.
>
> pipe = Popen(exttool,shell=True,stdout=PIPE).stdout

I'd strongly suggest trying to avoid shell=True.

> for data in pipe.readlines():

for data in pipe:

>    print data,
>
> This operation blocks forever I'm guessing it's trying to process the entire 
> file at once.

Indeed, that's how readlines() works, so don't use it.
http://docs.python.org/tutorial/inputoutput.html#methods-of-file-objects

Cheers,
Chris
--
http://blog.rebertia.com
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to