| criswellious@47 | 1 | #! /usr/bin/env python
|
| criswellious@47 | 2 |
|
| criswellious@47 | 3 | pattern_list = ['*.jpg',
|
| criswellious@47 | 4 | '*.jpeg',
|
| criswellious@47 | 5 | '*.gif',
|
| criswellious@47 | 6 | '*.png',
|
| criswellious@47 | 7 | '*.tiff',
|
| criswellious@47 | 8 | ]
|
| criswellious@47 | 9 |
|
| criswellious@47 | 10 | class Bunch:
|
| criswellious@47 | 11 | def __init__(self, **kwds): self.__dict__.update(kwds)
|
| criswellious@47 | 12 | arg = Bunch(recurse=True, pattern_list=pattern_list, return_folders=0, results={})
|
| criswellious@47 | 13 |
|
| criswellious@47 | 14 | def visit(arg, dirname, files):
|
| criswellious@47 | 15 | # Append to arg.results all relevant files
|
| criswellious@47 | 16 | for name in files:
|
| criswellious@47 | 17 | fullname = os.path.normpath(os.path.join(dirname, name))
|
| criswellious@47 | 18 | fullname = fullname.rstrip()
|
| criswellious@47 | 19 | if arg.return_folders or os.path.isfile(fullname):
|
| criswellious@47 | 20 | normalized_filename = name.lower()
|
| criswellious@47 | 21 | for pattern in arg.pattern_list:
|
| criswellious@47 | 22 | if fnmatch.fnmatch(normalized_filename, pattern):
|
| criswellious@47 | 23 | arg.results[name] = fullname
|
| criswellious@47 | 24 | break
|
| criswellious@47 | 25 | # Block recursion if disallowed
|
| criswellious@47 | 26 | if not arg.recurse: files[:]=[]
|
| criswellious@47 | 27 |
|
| criswellious@47 | 28 | root = "/home/sam/images"
|
| criswellious@47 | 29 |
|
| criswellious@47 | 30 | os.path.walk(root, visit, arg)
|
| criswellious@47 | 31 | print arg.results |