On Apr 3, 12:20 pm, mcanjo <mca...@gmail.com> wrote: > On Apr 3, 11:15 am, Patrick Maupin <pmau...@gmail.com> wrote: > > > > > On Apr 3, 11:09 am, mcanjo <mca...@gmail.com> wrote: > > > > I have an executable (I don't have access to the source code) that > > > processes some data. I double click on the icon and a Command prompt > > > window pops up. The program asks me for the input file, I hit enter, > > > and then it asks me for and output filename, I hit enter a second time > > > and it goes off and does its thing and when it is finished running the > > > Command Prompt goes away and I have my new output file in the same > > > directory as my executable and input file. I would like to be able to > > > batch process a group of files. I thought about using "os.spawnv()" in > > > a loop and at each iteration of the loop passing in the file in and > > > out names but that didn't work. Does anyone have any ideas? > > > You need to look at the subprocess module, and use pipes. > > > Regards, > > Pat > > I tried doing the following code: > > from subprocess import Popen > from subprocess import PIPE, STDOUT > exefile = Popen('pmm.exe', stdout = PIPE, stdin = PIPE, stderr = > STDOUT) > exefile.communicate('MarchScreen.pmm\nMarchScreen.out')[0] > > and the Command Prompt opened and closed, no exceptions were generated > but the program didn't run. Am I doing something wrong?
I don't use communicate because I've never gotten it to do what I want. I also don't use Windows. I have a linux solution that allows me to feed stuf into a pipe, but I don't think it will work under Windows because it uses os functions to block on empty pipes that Windows doesn't support. You might read PEP 3145 -- it addresses some of the issues, and there is some code to help, I think: http://www.python.org/dev/peps/pep-3145/ Regards, Pat -- http://mail.python.org/mailman/listinfo/python-list