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

@ -1,53 +0,0 @@
:mod:`commands` --- Utilities for running commands
==================================================
.. module:: commands
:platform: Unix
:synopsis: Utility functions for running external commands.
.. sectionauthor:: Sue Williams <sbw@provis.com>
The :mod:`commands` module contains wrapper functions for :func:`os.popen` which
take a system command as a string and return any output generated by the command
and, optionally, the exit status.
The :mod:`subprocess` module provides more powerful facilities for spawning new
processes and retrieving their results. Using the :mod:`subprocess` module is
preferable to using the :mod:`commands` module.
The :mod:`commands` module defines the following functions:
.. function:: getstatusoutput(cmd)
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`.
.. function:: getoutput(cmd)
Like :func:`getstatusoutput`, except the exit status is ignored and the return
value is a string containing the command's output.
Example::
>>> import commands
>>> commands.getstatusoutput('ls /bin/ls')
(0, '/bin/ls')
>>> commands.getstatusoutput('cat /bin/junk')
(256, 'cat: /bin/junk: No such file or directory')
>>> commands.getstatusoutput('/bin/junk')
(256, 'sh: /bin/junk: not found')
>>> commands.getoutput('ls /bin/ls')
'/bin/ls'
.. seealso::
Module :mod:`subprocess`
Module for spawning and managing subprocesses.

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
^^^^^^^^^^

View file

@ -25,4 +25,3 @@ of it. Here's an overview:
resource.rst
nis.rst
syslog.rst
commands.rst