mirror of https://github.com/python/cpython
[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 d88a1f2e15
)
Co-authored-by: Barney Gale <barney.gale@gmail.com>
This commit is contained in:
parent
15c3d0013d
commit
d5ad3b7fc8
|
@ -1411,6 +1411,70 @@ Creating files and directories
|
||||||
available. In previous versions, :exc:`NotImplementedError` was raised.
|
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
|
Other methods
|
||||||
^^^^^^^^^^^^^
|
^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
@ -1528,47 +1592,6 @@ Other methods
|
||||||
available. In previous versions, :exc:`NotImplementedError` was raised.
|
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()
|
.. method:: Path.absolute()
|
||||||
|
|
||||||
Make the path absolute, without normalization or resolving symlinks.
|
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
|
strict mode, and no exception is raised in non-strict mode. In previous
|
||||||
versions, :exc:`RuntimeError` is raised no matter the value of *strict*.
|
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:
|
.. _pathlib-pattern-language:
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue