Skip to content

Commit

Permalink
bpo-13826: Clarify Popen constructor example (GH-18438)
Browse files Browse the repository at this point in the history
Clarifies that the use of `shlex.split` is more instructive than
normative, and provides a simpler example.

https://bugs.python.org/issue13826
(cherry picked from commit 95d024d)

Co-authored-by: Tim D. Smith <github@tim-smith.us>
  • Loading branch information
miss-islington and tdsmith committed Feb 10, 2020
1 parent a12effd commit 78982f9
Showing 1 changed file with 8 additions and 2 deletions.
10 changes: 8 additions & 2 deletions Doc/library/subprocess.rst
Expand Up @@ -354,14 +354,20 @@ functions.
arguments for additional differences from the default behavior. Unless
otherwise stated, it is recommended to pass *args* as a sequence.

An example of passing some arguments to an external program
as a sequence is::

Popen(["/usr/bin/git", "commit", "-m", "Fixes a bug."])

On POSIX, if *args* is a string, the string is interpreted as the name or
path of the program to execute. However, this can only be done if not
passing arguments to the program.

.. note::

:meth:`shlex.split` can be useful when determining the correct
tokenization for *args*, especially in complex cases::
It may not be obvious how to break a shell command into a sequence of arguments,
especially in complex cases. :meth:`shlex.split` can illustrate how to
determine the correct tokenization for *args*::

>>> import shlex, subprocess
>>> command_line = input()
Expand Down

0 comments on commit 78982f9

Please sign in to comment.