The commands module has been removed. The getoutput() and getstatusoutput()

functions have been added to the subprocess module.

The fixer for this still needs to be written and proper Py3K deprecation
warnings for the functions that didn't make the transition need to be done in
2.6.

This is all part of trying to close issue #2872.
This commit is contained in:
Brett Cannon 2008-05-26 19:04:21 +00:00
parent 35af8d4218
commit a23810f86a
13 changed files with 140 additions and 196 deletions

View file

@ -14,7 +14,6 @@ replace several other, older modules and functions, such as::
os.system
os.spawn*
commands.*
Information about how the :mod:`subprocess` module can be used to replace these
modules and functions can be found in the following sections.
@ -113,7 +112,7 @@ This module defines one class called :class:`Popen`:
Convenience Functions
^^^^^^^^^^^^^^^^^^^^^
This module also defines two shortcut functions:
This module also defines four shortcut functions:
.. function:: call(*popenargs, **kwargs)
@ -138,6 +137,35 @@ This module also defines two shortcut functions:
check_call(["ls", "-l"])
.. function:: getstatusoutput(cmd)
Return ``(status, output)`` of executing *cmd* in a shell.
Execute the string *cmd* in a shell with :func:`os.popen` and return a 2-tuple
``(status, output)``. *cmd* is actually run as ``{ cmd ; } 2>&1``, so that the
returned output will contain output or error messages. A trailing newline is
stripped from the output. The exit status for the command can be interpreted
according to the rules for the C function :cfunc:`wait`. Example::
>>> import subprocess
>>> subprocess.getstatusoutput('ls /bin/ls')
(0, '/bin/ls')
>>> subprocess.getstatusoutput('cat /bin/junk')
(256, 'cat: /bin/junk: No such file or directory')
>>> subprocess.getstatusoutput('/bin/junk')
(256, 'sh: /bin/junk: not found')
.. function:: getoutput(cmd)
Return output ``(stdout or stderr)`` of executing *cmd* in a shell.
Like :func:`getstatusoutput`, except the exit status is ignored and the return
value is a string containing the command's output. Example::
>>> import subprocess
>>> subprocess.getoutput('ls /bin/ls')
'/bin/ls'
Exceptions
^^^^^^^^^^