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