Julio Sergio wrote:

> J. Cliff Dyer <jcd <at> sdf.lonestar.org> writes:
> 
>> 
>> readlines() reads all the lines from the filehandle, but the filehandle
>> hasn't signalled that it is done writing lines, so fo is waiting until
>> fi is complete.  You either need to keep reading one line at a time, and
>> manually release control when there's nothing more to read, or you need
>> to do an fi.close() before you try to use fo.readlines().
>> 
>> 
> 
> Thanks... It worked as you said. Here is how I coded it:
> 
> ->>> fi.writelines(["uno\n","dos\n","tres\n"])
> ->>> fi.close()
> ->>> l = fo.readlines()
> ->>> l
> ['uno\n', 'dos\n', 'tres\n']

I believe this may hang on the fi.writelines(...) line if you write "too 
much" data.

>From the subprocess documentation:

"""
Warning
 
Use communicate() rather than .stdin.write, .stdout.read or .stderr.read to 
avoid deadlocks due to any of the other OS pipe buffers filling up and 
blocking the child process.
"""

-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to