summaryrefslogtreecommitdiffstats
path: root/Lib/pathlib.py
diff options
context:
space:
mode:
author‮zlohhcuB treboR <robert.buchholz@goodpoint.de>2019-05-15 22:02:11 (GMT)
committerMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>2019-05-15 22:02:11 (GMT)
commitd9e006bcefe6fac859b1b5d741725b9a91991044 (patch)
tree47d9d85984d3767ae0a24e58b33e4a75e65e3372 /Lib/pathlib.py
parent1a2dd82f56bd813aacc570e172cefe55a8a41504 (diff)
downloadcpython-d9e006bcefe6fac859b1b5d741725b9a91991044.zip
cpython-d9e006bcefe6fac859b1b5d741725b9a91991044.tar.gz
cpython-d9e006bcefe6fac859b1b5d741725b9a91991044.tar.bz2
bpo-33123: pathlib: Add missing_ok parameter to Path.unlink (GH-6191)
Similarly to how several pathlib file creation functions have an "exists_ok" parameter, we should introduce "missing_ok" that makes removal functions not raise an exception when a file or directory is already absent. IMHO, this should cover Path.unlink and Path.rmdir. Note, Path.resolve() has a "strict" parameter since 3.6 that does the same thing. Naming this of this new parameter tries to be consistent with the "exists_ok" parameter as that is more explicit about what it does (as opposed to "strict"). https://bugs.python.org/issue33123
Diffstat (limited to 'Lib/pathlib.py')
-rw-r--r--Lib/pathlib.py8
1 files changed, 6 insertions, 2 deletions
diff --git a/Lib/pathlib.py b/Lib/pathlib.py
index 952cd94..b5bab1f 100644
--- a/Lib/pathlib.py
+++ b/Lib/pathlib.py
@@ -1279,14 +1279,18 @@ class Path(PurePath):
self._raise_closed()
self._accessor.lchmod(self, mode)
- def unlink(self):
+ def unlink(self, missing_ok=False):
"""
Remove this file or link.
If the path is a directory, use rmdir() instead.
"""
if self._closed:
self._raise_closed()
- self._accessor.unlink(self)
+ try:
+ self._accessor.unlink(self)
+ except FileNotFoundError:
+ if not missing_ok:
+ raise
def rmdir(self):
"""