GeezerVison is showing github.com — Improve performance of `os.walk()` · Issue #119169 · python/cpython
Improve performance of os.walk() #119169DescriptionThere 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.
Linked PRs
Reacted by Nice Zombies, Wulian233 and lit Activitybarneygale commented on May 19, 2024 ContributorAuthor More actions
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.
Upon closer inspection, I think I was wrong. Symlinks to directories where is_symlink() raises should still be categorised as dirs. serhiy-storchaka commented on Jul 8, 2024 There are too many open PRs. Are they independent? Alternative? What should I review? barneygale commented on Jul 8, 2024 ContributorAuthor More actions
There are too many open PRs. Are they independent? Alternative? What should I review?
The two draft PRs (GH-121433 and GH-119186) depend on GH-119473. The three non-draft PRs are independent and can be reviewed/accepted/rejected in any order or combination.
MetadataMetadataStatusShow more project fields
DevelopmentNo branches or pull requestsIssue actions
|