By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
448,799 Members | 1,356 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 448,799 IT Pros & Developers. It's quick & easy.

subprocess.Popen spawning cmd shells

P: n/a
Hi,
I'm currently writing a python program that relies on a CLI
program. What I'm currently doing is using subprocess.Popen on Python
2.5.1. Here's the line that I'm currently running:

child = subprocess.Popen(["c:\app.exe", node, "-w",
str(tmpTime * 1000), '-n', str(1), '-l'], stdin=subprocess.PIPE,
stdout=subprocess.PIPE, stderr=subprocess.PIPE)

The problem is that although the above works, a CMD shell is spawned
and becomes visible for each time I run the above. I thought that by
redircting stdin, stdout and stderr, no CMD shell should pop-up. Is
something wrong in the way I'm using subprocess? Thanks for your help.
Jan 9 '08 #1
Share this Question
Share on Google+
1 Reply


P: n/a
On Jan 9, 5:17*pm, Mrown <mathewbr...@fastmail.fmwrote:
Hi,
* I'm currently writing a python program that relies on a CLI
program. *What I'm currently doing is using subprocess.Popen on Python
2.5.1. *Here's the line that I'm currently running:

* * * * * * child = subprocess.Popen(["c:\app.exe", node, "-w",
str(tmpTime * 1000), '-n', str(1), '-l'], stdin=subprocess.PIPE,
stdout=subprocess.PIPE, stderr=subprocess.PIPE)

The problem is that although the above works, a CMD shell is spawned
and becomes visible for each time I run the above. *I thought that by
redircting stdin, stdout and stderr, no CMD shell should pop-up. *Is
something wrong in the way I'm using subprocess? *Thanks for your help.
To anyone interested, I found the solution by using the
CREATE_NO_WINDOW creation flag. So this is what the code now looks
like (and it doesn't spawn any shells):

CREATE_NO_WINDOW = 0x8000000
child = subprocess.Popen(["c:\app.exe", node, "-w",
str(tmpTime * 1000), '-n', str(1), '-l'], stdin=subprocess.PIPE,
stdout=subprocess.PIPE, stderr=subprocess.PIPE, creationflags =
CREATE_NO_WINDOW)
Jan 9 '08 #2

This discussion thread is closed

Replies have been disabled for this discussion.