jb wrote: > Hi there: > > I need help with popen2 usage. I am coding on Windows 2000 environment > and I am basically trying to run command line executable program that > accepts command line arguments from user. I want to be able to provide > these arguments through input pipe so that executable does not require > any intervention from the user. The way I am doing this is as below: > > out1, in1 = popen2.popen2("testme.exe > abc.txt") > in1.write('-test1') > in1.flush() > in1.close() > > But this does not seem to be working, when I open abc.txt file it does > not show '-test1' argument that was supplied via in1.write method. This > causing executable to wait forever unless user manually kills the > process.
I'm confused; is "-test1" a command line argument to testme.exe? Or is it the text that testme.exe should receive from standard input? Either way, I would suggest using subprocess instead of popen*. To pass -test1 as a command line argument, do something like: import subprocess as sp p = sp.Popen(["testme.exe", "-test1"], stdout=sp.PIPE) out1 = sp.stdout.read() To pass -test1 through standard input, do something like: import subprocess as sp p = sp.Popen(["testme.exe"], stdout=sp.PIPE) p.stdin.write("-test1") p.stdin.flush() p.stdin.close() out1 = p.stdout HTH, STeVe -- http://mail.python.org/mailman/listinfo/python-list