You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
There are a couple of minor performance improvements possible in os.walk():
We don't need to manually pump the os.scandir iterator, given we handle exceptions from next() like exceptions from scandir() itself, i.e. by ignoring the problematic directory and moving on. We can use a for loop like filthy casuals.
In bottom-up mode, we can handle exceptions from entry.is_symlink() in the same block as those from entry.is_dir(), which avoids a few temporary variables.
In top-down mode, we can call os.path.join() once on a parent directory rather than for each child path.
There are a couple of minor performance improvements possible in
os.walk():os.scandiriterator, given we handle exceptions fromnext()like exceptions fromscandir()itself, i.e. by ignoring the problematic directory and moving on. We can use aforloop like filthy casuals.In bottom-up mode, we can handle exceptions fromentry.is_symlink()in the same block as those fromentry.is_dir(), which avoids a few temporary variables.os.path.join()once on a parent directory rather than for each child path.Linked PRs
os.walk(topdown=False)#119186os.[f]walk(topdown=False)#119473pathlib.Path.walk()usingos.walk()#119573pathlib.Path.walk()usingos.walk()(GH-119573) #119750os.walk(topdown=True)#121431os.fwalk()exception handling #121432os.fwalk(topdown=False)#121433os.walk()exception handling #121435