error on windows with commands.getstatusoutput

Lee Harr missive at
Mon Dec 29 01:23:39 CET 2008

>> cmd = '%s -y %s -l %s' % (conf.twistd, conf.tztac, conf.twistdlog)
>> status, output = commands.getstatusoutput(cmd)

> The commands module is Unix only. See its documentation :

Ah. Doh!

I was going back and forth between all of the different ways
to do this (os.system, os.spawn*, commands.*, subprocess.*)
and lost track of the no windows for commands thing.

Too bad it can't raise a more meaningful error message...

Anyhow, I've replaced it with this:

from subprocess import Popen, PIPE, STDOUT
p = Popen(cmd, shell=True, stdin=PIPE, stdout=PIPE,
                                    stderr=STDOUT, close_fds=True)
output, unused = p.communicate()
status = p.returncode

Does that look more windows-friendly?

Drag n’ drop—Get easy photo sharing with Windows Live™ Photos.

More information about the Python-list mailing list