merge from 3.2
This commit is contained in:
commit
fd9103a5da
|
@ -94,12 +94,10 @@ This module defines one class called :class:`Popen`:
|
||||||
*shell=False* does not suffer from this vulnerability; the above Note may be
|
*shell=False* does not suffer from this vulnerability; the above Note may be
|
||||||
helpful in getting code using *shell=False* to work.
|
helpful in getting code using *shell=False* to work.
|
||||||
|
|
||||||
On Windows: the :class:`Popen` class uses CreateProcess() to execute the child
|
On Windows: the :class:`Popen` class uses CreateProcess() to execute the
|
||||||
program, which operates on strings. If *args* is a sequence, it will be
|
child program, which operates on strings. If *args* is a sequence, it will
|
||||||
converted to a string using the :meth:`list2cmdline` method. Please note that
|
be converted to a string in a manner described in
|
||||||
not all MS Windows applications interpret the command line the same way:
|
:ref:`converting-argument-sequence`.
|
||||||
:meth:`list2cmdline` is designed for applications using the same rules as the MS
|
|
||||||
C runtime.
|
|
||||||
|
|
||||||
*bufsize*, if given, has the same meaning as the corresponding argument to the
|
*bufsize*, if given, has the same meaning as the corresponding argument to the
|
||||||
built-in open() function: :const:`0` means unbuffered, :const:`1` means line
|
built-in open() function: :const:`0` means unbuffered, :const:`1` means line
|
||||||
|
@ -733,3 +731,37 @@ Replacing functions from the :mod:`popen2` module
|
||||||
* popen2 closes all file descriptors by default, but you have to specify
|
* popen2 closes all file descriptors by default, but you have to specify
|
||||||
``close_fds=True`` with :class:`Popen` to guarantee this behavior on
|
``close_fds=True`` with :class:`Popen` to guarantee this behavior on
|
||||||
all platforms or past Python versions.
|
all platforms or past Python versions.
|
||||||
|
|
||||||
|
Notes
|
||||||
|
-----
|
||||||
|
|
||||||
|
.. _converting-argument-sequence:
|
||||||
|
|
||||||
|
Converting an argument sequence to a string on Windows
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
On Windows, an *args* sequence is converted to a string that can be parsed
|
||||||
|
using the following rules (which correspond to the rules used by the MS C
|
||||||
|
runtime):
|
||||||
|
|
||||||
|
1. Arguments are delimited by white space, which is either a
|
||||||
|
space or a tab.
|
||||||
|
|
||||||
|
2. A string surrounded by double quotation marks is
|
||||||
|
interpreted as a single argument, regardless of white space
|
||||||
|
contained within. A quoted string can be embedded in an
|
||||||
|
argument.
|
||||||
|
|
||||||
|
3. A double quotation mark preceded by a backslash is
|
||||||
|
interpreted as a literal double quotation mark.
|
||||||
|
|
||||||
|
4. Backslashes are interpreted literally, unless they
|
||||||
|
immediately precede a double quotation mark.
|
||||||
|
|
||||||
|
5. If backslashes immediately precede a double quotation mark,
|
||||||
|
every pair of backslashes is interpreted as a literal
|
||||||
|
backslash. If the number of backslashes is odd, the last
|
||||||
|
backslash escapes the next double quotation mark as
|
||||||
|
described in rule 3.
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue