diff options
Diffstat (limited to 'Lib/find.py')
-rw-r--r-- | Lib/find.py | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/Lib/find.py b/Lib/find.py new file mode 100644 index 0000000..ccd9fdb --- /dev/null +++ b/Lib/find.py @@ -0,0 +1,26 @@ +import fnmatch +import os + +_debug = 0 + +_prune = ['(*)'] + +def find(pattern, dir = os.curdir): + list = [] + names = os.listdir(dir) + names.sort() + for name in names: + if name in (os.curdir, os.pardir): + continue + fullname = os.path.join(dir, name) + if fnmatch.fnmatch(name, pattern): + list.append(fullname) + if os.path.isdir(fullname) and not os.path.islink(fullname): + for p in _prune: + if fnmatch.fnmatch(name, p): + if _debug: print "skip", `fullname` + break + else: + if _debug: print "descend into", `fullname` + list = list + find(pattern, fullname) + return list |