subprocess.Popen spawning cmd shells

Mrown mathewbrown at fastmail.fm
Wed Jan 9 11:10:47 EST 2008


On Jan 9, 5:17 pm, Mrown <mathewbr... at fastmail.fm> wrote:
> 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)



More information about the Python-list mailing list