summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>2024-06-13 20:43:59 (GMT)
committerGitHub <noreply@github.com>2024-06-13 20:43:59 (GMT)
commitd5ad3b7fc8f5c02210b19bf833582f9f89010658 (patch)
tree308142b34d1d791cfa12cd4c9e5353b3b9a53ee8
parent15c3d0013d5e653c63171dc5daa533ed45ba811f (diff)
downloadcpython-d5ad3b7fc8f5c02210b19bf833582f9f89010658.zip
cpython-d5ad3b7fc8f5c02210b19bf833582f9f89010658.tar.gz
cpython-d5ad3b7fc8f5c02210b19bf833582f9f89010658.tar.bz2
[3.13] GH-119054: Add "Renaming and deleting" section to pathlib docs. (GH-120465) (#120472)
GH-119054: Add "Renaming and deleting" section to pathlib docs. (GH-120465) Add dedicated subsection for `pathlib.Path.rename()`, `replace()`, `unlink()` and `rmdir()`. (cherry picked from commit d88a1f2e156cd1072119afa91d4f4dc4037c1b21) Co-authored-by: Barney Gale <barney.gale@gmail.com>
-rw-r--r--Doc/library/pathlib.rst124
1 files changed, 64 insertions, 60 deletions
diff --git a/Doc/library/pathlib.rst b/Doc/library/pathlib.rst
index 5b38fe2..ebed9d5 100644
--- a/Doc/library/pathlib.rst
+++ b/Doc/library/pathlib.rst
@@ -1411,6 +1411,70 @@ Creating files and directories
available. In previous versions, :exc:`NotImplementedError` was raised.
+Renaming and deleting
+^^^^^^^^^^^^^^^^^^^^^
+
+.. method:: Path.rename(target)
+
+ Rename this file or directory to the given *target*, and return a new
+ :class:`!Path` instance pointing to *target*. On Unix, if *target* exists
+ and is a file, it will be replaced silently if the user has permission.
+ On Windows, if *target* exists, :exc:`FileExistsError` will be raised.
+ *target* can be either a string or another path object::
+
+ >>> p = Path('foo')
+ >>> p.open('w').write('some text')
+ 9
+ >>> target = Path('bar')
+ >>> p.rename(target)
+ PosixPath('bar')
+ >>> target.open().read()
+ 'some text'
+
+ The target path may be absolute or relative. Relative paths are interpreted
+ relative to the current working directory, *not* the directory of the
+ :class:`!Path` object.
+
+ It is implemented in terms of :func:`os.rename` and gives the same guarantees.
+
+ .. versionchanged:: 3.8
+ Added return value, return the new :class:`!Path` instance.
+
+
+.. method:: Path.replace(target)
+
+ Rename this file or directory to the given *target*, and return a new
+ :class:`!Path` instance pointing to *target*. If *target* points to an
+ existing file or empty directory, it will be unconditionally replaced.
+
+ The target path may be absolute or relative. Relative paths are interpreted
+ relative to the current working directory, *not* the directory of the
+ :class:`!Path` object.
+
+ .. versionchanged:: 3.8
+ Added return value, return the new :class:`!Path` instance.
+
+
+.. method:: Path.unlink(missing_ok=False)
+
+ Remove this file or symbolic link. If the path points to a directory,
+ use :func:`Path.rmdir` instead.
+
+ If *missing_ok* is false (the default), :exc:`FileNotFoundError` is
+ raised if the path does not exist.
+
+ If *missing_ok* is true, :exc:`FileNotFoundError` exceptions will be
+ ignored (same behavior as the POSIX ``rm -f`` command).
+
+ .. versionchanged:: 3.8
+ The *missing_ok* parameter was added.
+
+
+.. method:: Path.rmdir()
+
+ Remove this directory. The directory must be empty.
+
+
Other methods
^^^^^^^^^^^^^
@@ -1528,47 +1592,6 @@ Other methods
available. In previous versions, :exc:`NotImplementedError` was raised.
-.. method:: Path.rename(target)
-
- Rename this file or directory to the given *target*, and return a new Path
- instance pointing to *target*. On Unix, if *target* exists and is a file,
- it will be replaced silently if the user has permission.
- On Windows, if *target* exists, :exc:`FileExistsError` will be raised.
- *target* can be either a string or another path object::
-
- >>> p = Path('foo')
- >>> p.open('w').write('some text')
- 9
- >>> target = Path('bar')
- >>> p.rename(target)
- PosixPath('bar')
- >>> target.open().read()
- 'some text'
-
- The target path may be absolute or relative. Relative paths are interpreted
- relative to the current working directory, *not* the directory of the Path
- object.
-
- It is implemented in terms of :func:`os.rename` and gives the same guarantees.
-
- .. versionchanged:: 3.8
- Added return value, return the new Path instance.
-
-
-.. method:: Path.replace(target)
-
- Rename this file or directory to the given *target*, and return a new Path
- instance pointing to *target*. If *target* points to an existing file or
- empty directory, it will be unconditionally replaced.
-
- The target path may be absolute or relative. Relative paths are interpreted
- relative to the current working directory, *not* the directory of the Path
- object.
-
- .. versionchanged:: 3.8
- Added return value, return the new Path instance.
-
-
.. method:: Path.absolute()
Make the path absolute, without normalization or resolving symlinks.
@@ -1611,25 +1634,6 @@ Other methods
strict mode, and no exception is raised in non-strict mode. In previous
versions, :exc:`RuntimeError` is raised no matter the value of *strict*.
-.. method:: Path.rmdir()
-
- Remove this directory. The directory must be empty.
-
-
-.. method:: Path.unlink(missing_ok=False)
-
- Remove this file or symbolic link. If the path points to a directory,
- use :func:`Path.rmdir` instead.
-
- If *missing_ok* is false (the default), :exc:`FileNotFoundError` is
- raised if the path does not exist.
-
- If *missing_ok* is true, :exc:`FileNotFoundError` exceptions will be
- ignored (same behavior as the POSIX ``rm -f`` command).
-
- .. versionchanged:: 3.8
- The *missing_ok* parameter was added.
-
.. _pathlib-pattern-language: