[python-win32] windows friendly commands.getstatusoutput
Reedick, Andrew
jr9445 at ATT.COM
Mon Jan 7 17:09:13 CET 2008
The commands.getstatusoutput wraps the command in "{ cmd; } 2>&1".
Needless to say, this is not windows friendly:
import commands
>>> import commands
>>> status, output = commands.getstatusoutput('dir')
>>> print status
1
>>> print output
'{' is not recognized as an internal or external command,
operable program or batch file.
Would it be worthwhile to submit a simple patch to get around this
prejudice? Or is there some overwhelming reason to use subprocess.popen
directly and/or a win32api call instead?
Patched Lib/commands.py
def getstatusoutput(cmd):
"""Return (status, output) of executing cmd in a shell."""
import sys
mswindows = (sys.platform == "win32")
import os
if not mswindows:
cmd = '{ ' + cmd + '; }'
pipe = os.popen(cmd + ' 2>&1', 'r')
text = pipe.read()
sts = pipe.close()
if sts is None: sts = 0
if text[-1:] == '\n': text = text[:-1]
return sts, text
*****
The information transmitted is intended only for the person or entity to which it is addressed and may contain confidential, proprietary, and/or privileged material. Any review, retransmission, dissemination or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. If you received this in error, please contact the sender and delete the material from all computers. GA623
More information about the python-win32
mailing list