[Python-Dev] cpython (3.3): Add examples for opener argument of open (#13424).
Georg Brandl
g.brandl at gmx.net
Mon Nov 5 19:04:34 CET 2012
Am 03.11.2012 22:10, schrieb eric.araujo:
> http://hg.python.org/cpython/rev/17b094c08600
> changeset: 80219:17b094c08600
> branch: 3.3
> parent: 80214:e6d0951f412a
> user: Éric Araujo <merwok at netwok.org>
> date: Sat Nov 03 17:06:52 2012 -0400
> summary:
> Add examples for opener argument of open (#13424).
>
> Patch by Guillaume Pratte.
>
> files:
> Doc/library/functions.rst | 30 +++++++++++++++++++++++++++
> Doc/library/io.rst | 3 ++
> Misc/ACKS | 1 +
> 3 files changed, 34 insertions(+), 0 deletions(-)
>
>
> diff --git a/Doc/library/functions.rst b/Doc/library/functions.rst
> --- a/Doc/library/functions.rst
> +++ b/Doc/library/functions.rst
> @@ -935,6 +935,36 @@
> :mod:`os.open` as *opener* results in functionality similar to passing
> ``None``).
>
> + The following example is an alternative implementation for opening files
> + for exclusive writing. If we did not have support for the ``'x'`` mode,
> + we could implement it with this opener::
> +
> + >>> import os
> + >>> def open_exclusive(path, mode):
> + ... return os.open(path, mode | os.O_CREAT | os.O_EXCL)
> + ...
> + >>> filename = 'spam.txt'
> + >>> fp = open(filename, 'w', opener=open_exclusive)
> + >>> fp2 = open(filename, 'w', opener=open_exclusive)
> + Traceback (most recent call last):
> + ...
> + FileExistsError: [Errno 17] File exists: 'spam.txt'
> +
> + This other example uses the :ref:`dir_fd` parameter of the
> + :func:`os.open` function to open a file relative to a given directory::
Please heed your Sphinx warnings: the :ref:`dir_fd` needs a link caption, since
it can't autogenerate one (the dir_fd anchor does not point to a heading).
Georg
More information about the Python-Dev
mailing list