summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBarney Gale <barney.gale@gmail.com>2024-06-02 20:14:29 (GMT)
committerGitHub <noreply@github.com>2024-06-02 20:14:29 (GMT)
commit059be67b51717519609b29c53bf742ca4d91b68f (patch)
tree89bd0374fc702ffb1900c830b66a86316c2bd182
parent85020647c2a8c53dbdea2f6b31c5d5af85ca317d (diff)
downloadcpython-059be67b51717519609b29c53bf742ca4d91b68f.zip
cpython-059be67b51717519609b29c53bf742ca4d91b68f.tar.gz
cpython-059be67b51717519609b29c53bf742ca4d91b68f.tar.bz2
[3.12] GH-119054: Add "Reading and writing files" section to pathlib docs (GH-119524) (#119955)
Add a dedicated subsection for `open()`, `read_text()`, `read_bytes()`, `write_text()` and `write_bytes()`. (cherry picked from commit bd6d4ed6454378e48dab06f50a9be0bae6baa3a2)
-rw-r--r--Doc/library/pathlib.rst157
1 files changed, 81 insertions, 76 deletions
diff --git a/Doc/library/pathlib.rst b/Doc/library/pathlib.rst
index 0115ea8..d4b0e07 100644
--- a/Doc/library/pathlib.rst
+++ b/Doc/library/pathlib.rst
@@ -959,6 +959,87 @@ Querying file type and status
.. versionadded:: 3.5
+Reading and writing files
+^^^^^^^^^^^^^^^^^^^^^^^^^
+
+
+.. method:: Path.open(mode='r', buffering=-1, encoding=None, errors=None, newline=None)
+
+ Open the file pointed to by the path, like the built-in :func:`open`
+ function does::
+
+ >>> p = Path('setup.py')
+ >>> with p.open() as f:
+ ... f.readline()
+ ...
+ '#!/usr/bin/env python3\n'
+
+
+.. method:: Path.read_text(encoding=None, errors=None)
+
+ Return the decoded contents of the pointed-to file as a string::
+
+ >>> p = Path('my_text_file')
+ >>> p.write_text('Text file contents')
+ 18
+ >>> p.read_text()
+ 'Text file contents'
+
+ The file is opened and then closed. The optional parameters have the same
+ meaning as in :func:`open`.
+
+ .. versionadded:: 3.5
+
+
+.. method:: Path.read_bytes()
+
+ Return the binary contents of the pointed-to file as a bytes object::
+
+ >>> p = Path('my_binary_file')
+ >>> p.write_bytes(b'Binary file contents')
+ 20
+ >>> p.read_bytes()
+ b'Binary file contents'
+
+ .. versionadded:: 3.5
+
+
+.. method:: Path.write_text(data, encoding=None, errors=None, newline=None)
+
+ Open the file pointed to in text mode, write *data* to it, and close the
+ file::
+
+ >>> p = Path('my_text_file')
+ >>> p.write_text('Text file contents')
+ 18
+ >>> p.read_text()
+ 'Text file contents'
+
+ An existing file of the same name is overwritten. The optional parameters
+ have the same meaning as in :func:`open`.
+
+ .. versionadded:: 3.5
+
+ .. versionchanged:: 3.10
+ The *newline* parameter was added.
+
+
+.. method:: Path.write_bytes(data)
+
+ Open the file pointed to in bytes mode, write *data* to it, and close the
+ file::
+
+ >>> p = Path('my_binary_file')
+ >>> p.write_bytes(b'Binary file contents')
+ 20
+ >>> p.read_bytes()
+ b'Binary file contents'
+
+ An existing file of the same name is overwritten.
+
+ .. versionadded:: 3.5
+
+
Other methods
^^^^^^^^^^^^^
@@ -1222,53 +1303,12 @@ example because the path doesn't exist).
The *exist_ok* parameter was added.
-.. method:: Path.open(mode='r', buffering=-1, encoding=None, errors=None, newline=None)
-
- Open the file pointed to by the path, like the built-in :func:`open`
- function does::
-
- >>> p = Path('setup.py')
- >>> with p.open() as f:
- ... f.readline()
- ...
- '#!/usr/bin/env python3\n'
-
-
.. method:: Path.owner()
Return the name of the user owning the file. :exc:`KeyError` is raised
if the file's uid isn't found in the system database.
-.. method:: Path.read_bytes()
-
- Return the binary contents of the pointed-to file as a bytes object::
-
- >>> p = Path('my_binary_file')
- >>> p.write_bytes(b'Binary file contents')
- 20
- >>> p.read_bytes()
- b'Binary file contents'
-
- .. versionadded:: 3.5
-
-
-.. method:: Path.read_text(encoding=None, errors=None)
-
- Return the decoded contents of the pointed-to file as a string::
-
- >>> p = Path('my_text_file')
- >>> p.write_text('Text file contents')
- 18
- >>> p.read_text()
- 'Text file contents'
-
- The file is opened and then closed. The optional parameters have the same
- meaning as in :func:`open`.
-
- .. versionadded:: 3.5
-
-
.. method:: Path.readlink()
Return the path to which the symbolic link points (as returned by
@@ -1454,41 +1494,6 @@ example because the path doesn't exist).
The *missing_ok* parameter was added.
-.. method:: Path.write_bytes(data)
-
- Open the file pointed to in bytes mode, write *data* to it, and close the
- file::
-
- >>> p = Path('my_binary_file')
- >>> p.write_bytes(b'Binary file contents')
- 20
- >>> p.read_bytes()
- b'Binary file contents'
-
- An existing file of the same name is overwritten.
-
- .. versionadded:: 3.5
-
-
-.. method:: Path.write_text(data, encoding=None, errors=None, newline=None)
-
- Open the file pointed to in text mode, write *data* to it, and close the
- file::
-
- >>> p = Path('my_text_file')
- >>> p.write_text('Text file contents')
- 18
- >>> p.read_text()
- 'Text file contents'
-
- An existing file of the same name is overwritten. The optional parameters
- have the same meaning as in :func:`open`.
-
- .. versionadded:: 3.5
-
- .. versionchanged:: 3.10
- The *newline* parameter was added.
-
Correspondence to tools in the :mod:`os` module
-----------------------------------------------