Skip to content

Instantly share code, notes, and snippets.

@deanlxvii
Created October 14, 2011 12:39
Show Gist options
  • Save deanlxvii/1286991 to your computer and use it in GitHub Desktop.
Save deanlxvii/1286991 to your computer and use it in GitHub Desktop.
walking directory trees
import os, fnmatch
import os.path
def all_files(root, patterns='*', single_level=False, yield_folders=False):
"""
Examine a directroy, or an entire directroy tree rooted in a certain
directory.
"""
# Expande patterns from semicolon-seperated string to list
patterns = patterns.split(';')
for path, subdirs, files in os.walk(root):
if yield_folders:
files.extend(subdirs)
files.sort()
for name in files:
for pattern in patterns:
if fnmatch.fnmatch(name, pattern):
yield os.path.join(path, name)
break
if single_level:
break
def list_files(root, patterns, single_level=False, yield_folders=False):
"""
Examine a directroy, or an entire directroy tree rooted in a certain
directory.
"""
return list(all_files(root, patterns, single_level, yield_folders))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment