Armstrong, Richard J. wrote: > Hello all, > > This is my first post to the Tutor@python.org <mailto:Tutor@python.org> > mailing list. I am in the process of switching from Matlab to Python and > there is one task that I am having a hard time doing and cannot find the > answer on the web. I want to write a script in python that will open up > a windows dos program, send three inputs (file names) into program and > then run it. I know one way to open up the dos program with > os.system(r”c:\shake91.txt”) but cannot do the rest. > > Use the subprocess module: > > http://docs.python.org/library/subprocess.html > > untested, but should work: > subprocess.Popen([r'c:\shake91.txt', 'param1', 'paramN-1', 'paramN']) > > if you want to communicate with the process you can add , > stdout=subprocess.PIPE, stdin=subprocess.PIPE) to the function call. > > Check the docs for more info. > > HTH, > > Wayne >> >> > Wayne, > > It kindof works. I wrote > subprocess.Popen([r'c:\shake91.exe', 'FLAC.txt', 'a.txt', 'b.txt']) > > The dos program pops up and if I hit the enter key three times then it > runs. How can I add these three “enters” into the script?
Then perhaps something more like this (untested) ... from subprocess import Popen, PIPE proc = Popen([r'c:\shake91.exe'], stdin=PIPE, stdout=PIPE, stderr=PIPE) stdout, stderr = proc.communicate('FLAC.txt\na.txt\nb.txt\n') If that doesn't work you may need something like 'expect' for windows (or, pexpect and cygwin). HTH, Marty _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor