summaryrefslogtreecommitdiffstats
path: root/Lib/pathlib.py
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/pathlib.py')
-rw-r--r--Lib/pathlib.py10
1 files changed, 7 insertions, 3 deletions
diff --git a/Lib/pathlib.py b/Lib/pathlib.py
index c69089f..dee19d1 100644
--- a/Lib/pathlib.py
+++ b/Lib/pathlib.py
@@ -135,7 +135,8 @@ class _PreciseSelector(_Selector):
def _select_from(self, parent_path, is_dir, exists, scandir):
try:
path = parent_path._make_child_relpath(self.name)
- if (is_dir if self.dironly else exists)(path):
+ follow = is_dir(path) if self.dironly else exists(path, follow_symlinks=False)
+ if follow:
for p in self.successor._select_from(path, is_dir, exists, scandir):
yield p
except PermissionError:
@@ -1122,12 +1123,15 @@ class Path(PurePath):
# Convenience functions for querying the stat results
- def exists(self):
+ def exists(self, *, follow_symlinks=True):
"""
Whether this path exists.
+
+ This method normally follows symlinks; to check whether a symlink exists,
+ add the argument follow_symlinks=False.
"""
try:
- self.stat()
+ self.stat(follow_symlinks=follow_symlinks)
except OSError as e:
if not _ignore_error(e):
raise