-
-
Notifications
You must be signed in to change notification settings - Fork 33.2k
Closed
Labels
performancePerformance or resource usagePerformance or resource usagetopic-pathlibtype-bugAn unexpected behavior, bug, or errorAn unexpected behavior, bug, or error
Description
Bug report
Pathlib.rglob can be orders of magnitudes slower than glob.glob(recursive=True)
With a 1000-deep nested directory, glob.glob and Path.glob both took under 1 second. Path.rglob took close to 1.5 minutes.
import glob
import os
from pathlib import Path
x = ""
for _ in range(1000):
x += "a/"
os.mkdir(x)
# ~ 0.5s
print(glob.glob("**/*", recursive=True))
# ~ 87s
print(list(Path(".").rglob("**/*")))Linked PRs
- GH-102613: Improve performance of
pathlib.Path.rglob()#104244 - GH-102613: Fix recursion error from
pathlib.Path.glob()#104373 - GH-102613: Fast recursive globbing in
pathlib.Path.glob()#104512 - gh-102613: Bump recursion limit to fix running test_pathlib under Coverage #105744
- [3.12] gh-102613: Bump recursion limit to fix running test_pathlib under Coverage (GH-105744) #105749
barneygale
Metadata
Metadata
Assignees
Labels
performancePerformance or resource usagePerformance or resource usagetopic-pathlibtype-bugAn unexpected behavior, bug, or errorAn unexpected behavior, bug, or error