[Python-bugs-list] [ python-Bugs-506100 ] commands.getstatusoutput(): DOS support
noreply@sourceforge.net
noreply@sourceforge.net
Sun, 20 Jan 2002 10:13:12 -0800
Bugs item #506100, was opened at 2002-01-20 10:13
You can respond by visiting:
http://sourceforge.net/tracker/?func=detail&atid=105470&aid=506100&group_id=5470
Category: Python Library
Group: Platform-specific
Status: Open
Resolution: None
Priority: 5
Submitted By: Pierre Rouleau (pierre_rouleau)
Assigned to: Nobody/Anonymous (nobody)
Summary: commands.getstatusoutput(): DOS support
Initial Comment:
##commands.getstatusoutput(): Does not support for DOS-type shells
# -------------------------------------------------------------
#
# Inside commands.py, the getstatusoutput() function is not capable of running a
# DOS-type shell command. The current code assumes that the operating system
# is running a Unix-type shell.
#
# The old code is:
def getstatusoutput(cmd):
"""Return (status, output) of executing cmd in a shell."""
import os
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
# I propose that we update that code to check the operating system and support
# DOS-style shells (for DOS, NT, OS/2) with the following modified code:
def getstatusoutput(cmd):
"""Return (status, output) of executing cmd in a shell."""
import os
if os.name in ['nt', 'dos', 'os2'] :
# use Dos style command shell for NT, DOS and OS/2
pipe = os.popen(cmd + ' 2>&1', 'r')
else :
# use Unix style for all others
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
----------------------------------------------------------------------
You can respond by visiting:
http://sourceforge.net/tracker/?func=detail&atid=105470&aid=506100&group_id=5470