I'm trying to call an external process to filter some of my data, i.e., I'm trying to pass some information to the called process, and have this information back transformed. I started testing with the linux 'cat' command, in this way:
->>> import subprocess as sp ->>> p = sp.Popen(["cat"],stdin=sp.PIPE,stdout=sp.PIPE,close_fds=True) ->>> (fi,fo) = (p.stdin, p.stdout) ->>> fi.write("SOMETHING\n") ->>> fi.flush() ->>> fo.readline() 'SOMETHING\n' ->>> fi.write("OTHER\n") ->>> fi.flush() ->>> fo.readline() 'OTHER\n' ->>> fi.write("NEXT\n") ->>> fi.flush() ->>> fo.readline() 'NEXT\n' ->>> fi.write("NEXT1\n") ->>> fi.flush() ->>> s = fo.readline() ->>> s 'NEXT1\n' Up to this point it worked as expected. However, when I tryied with the methods that write and read several lines, apparently the process got stalled: ->>> fi.writelines(["uno\n","dos\n","tres\n"]) ->>> fi.flush() ->>> s = fo.readlines() . . . Do you have any comments on this? Thanks, --Sergio -- http://mail.python.org/mailman/listinfo/python-list