Problem using subprocess.Popen on windows

Tim Golden mail at timgolden.me.uk
Sun Oct 7 07:47:29 EDT 2007


jorma kala wrote:
> I get an error that I don't understand when using the subprocess module 
> on Windows.
> I guess I'm missing out something very basic.
> For instance, to execute and capture the output of the ms-dos dir 
> command, I tried the following:
> 
> from subprocess import *
> 
> p1 = Popen(["dir"],  stdout=PIPE)
> output = p1.communicate()[0]
> 
> But I get a WindowsError : [Error 2]  File Not Found

That's because "dir" isn't an executable file in its
own right, merely a subcommand of the command shell.
Do this:

<code>
from subprocess import *

p1 = Popen ("dir", shell=True, stdout=PIPE)
print p1.communicate ()[0]

</code>

TJG



More information about the Python-list mailing list