From 411bf641d3b820aa5e55718d5c5770543fa32255 Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Thu, 12 Mar 2015 09:12:48 +0100 Subject: [PATCH] Issue #23605: os.walk() doesn't need to call entry.is_symlink() if followlinks is True --- Lib/os.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Lib/os.py b/Lib/os.py index 8e325e3367..a9a57e0bdc 100644 --- a/Lib/os.py +++ b/Lib/os.py @@ -374,7 +374,10 @@ def walk(top, topdown=True, onerror=None, followlinks=False): if is_dir: dirs.append(entry.name) + else: + nondirs.append(entry.name) + if is_dir and not followlinks: try: if entry.is_symlink(): symlinks.add(entry.name) @@ -383,8 +386,6 @@ def walk(top, topdown=True, onerror=None, followlinks=False): # entry is not a symbolik link, same behaviour than # os.path.islink(). pass - else: - nondirs.append(entry.name) except OSError as error: # scandir() or iterating into scandir() iterator raised an OSError if onerror is not None: -- 2.50.1