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

Reply via email to