472,133 Members | 1,071 Online
Bytes | Software Development & Data Engineering Community
Post +

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 472,133 software developers and data experts.

python system subprocess win32

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
Aug 7 '07 #1
3 1776
On Aug 7, 9:48 am, "mclaugb" <mcla...@nospm.yahoo.comwrote:
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

Aug 7 '07 #2
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

<ky******@gmail.comwrote in message
news:11**********************@e9g2000prf.googlegro ups.com...
On Aug 7, 9:48 am, "mclaugb" <mcla...@nospm.yahoo.comwrote:
>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

Aug 7 '07 #3
On Aug 7, 11:07 am, "mclaugb" <mcla...@nospm.yahoo.comwrote:
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...@gmail.comwrote in message

news:11**********************@e9g2000prf.googlegro ups.com...
On Aug 7, 9:48 am, "mclaugb" <mcla...@nospm.yahoo.comwrote:
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

Aug 7 '07 #4

This discussion thread is closed

Replies have been disabled for this discussion.

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.