python system subprocess win32

kyosohma at gmail.com kyosohma at gmail.com
Tue Aug 7 12:15:52 EDT 2007


On Aug 7, 11:07 am, "mclaugb" <mcla... at nospm.yahoo.com> wrote:
> At the moment, I cannot figure a way of running this precompiled "conv.exe"
> using commandline arguments.
>
> Thus, I need Python to call the program, wait until it loads up, then enter
> a known sequence of characters so that the function will run.
> The program conv.exe I call looks like this.
> --------------------------
> Welcome to conv.exe
> This program was written by ....
>
> Please select from the following options: h- (help) r- (read) ...etc
> Enter your request:
> ---------------------------------
> I need Python to start the program, wait a second and then issue a few
> characters to the program.
>
> Hope this makes more sense!
> Bryan
>
> <kyoso... at gmail.com> wrote in message
>
> news:1186500091.063514.178640 at e9g2000prf.googlegroups.com...
>
> > On Aug 7, 9:48 am, "mclaugb" <mcla... at nospm.yahoo.com> wrote:
> >> Hello ALl,
> >> I have a compiled program "conv.exe" that works as follows:>>conv.exe
>
> >> -----------------------------
> >> Please selection from the following options.  press "h" for help, "p" for
> >> print, "r" for readfile.
> >> Enter your request now:
> >> ...
> >> --------------------
> >> Is there a way to script python using the subprocess method to start this
> >> program "conv.exe" and then send a "r" to the command line to make it,
> >> say,
> >> readfile.
>
> >> I have tried the following but the .communicate("r) is not doing anything
>
> >> import subprocess
> >> import time
>
> >> a=subprocess.Popen("c:\\mcml\\conv.exe")
> >> time.sleep(1)
> >> (stdout, stderr) = a.communicate("r")
>
> >> Many thanks,
> >> Bryan
>
> > Use the sys.argv method. In the code that you have compiled, put the
> > following lines in:
>
> > <code>
>
> > import sys
> > default = sys.argv[1]
> > if default:
> >   # check which option it is and run it appropriately
> > else:
> >   # print your menu here
>
> > </code>
>
> > Then you should be able to do the subprocess Popen command:
>
> > subprocess.Popen("c:\\mcml\\conv.exe r")
>
> > You may need to turn the shell on...
>
> > subprocess.Popen("c:\\mcml\\conv.exe r", shell=True)
>
> > Hopefully that gives you some ideas anyway.
>
> > Mike

Oh. I thought you had compiled the program yourself. I suppose you
could use SendKeys then. I have a couple links here:

http://pythonlibrary.org/python/SendKeys

It's pretty hackneyed, but I've used the SendKeys module to automate
Firefox to some degree.

Mike




More information about the Python-list mailing list