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

Reply via email to