Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #! /usr/bin/env python
- # -*- coding: iso-8859-1 -*-
- import os, re, sys, fnmatch
- import os.path as Path
- def main(cliargs):
- rootdir, pattern, outfile= cliargs
- HEADER='#Geeqie collection \n#created with Geeqie version 1.0 \
- \n#geometry: 25 95 440 450\n'
- FOOTER='#END'
- PATTERNS= [p for p in pattern.split(',')][:-1]
- if len(PATTERNS) == 0: return
- with open(outfile, 'w') as _outfile:
- _outfile.write(HEADER)
- for p in PATTERNS:
- listfiles=Walk(rootdir,1,p)
- for line in listfiles:
- _outfile.write('"'+line+'"\n')
- _outfile.write(FOOTER+'\n')
- def Exists(filepath):
- return Path.isfile(filepath) or None
- def Walk( root, recurse=0, pattern='*', return_folders=0 ):
- # initialize
- result = []
- # must have at least root folder
- try:
- names = os.listdir(root)
- except os.error:
- return result
- # expand pattern
- pattern = pattern or '*'
- # check each file
- for name in names:
- fullname = Path.normpath(Path.join(root, name))
- # grab if it matches our pattern and entry type
- for pat in pattern.split(';'):
- if fnmatch.fnmatch(name, pat):
- if Exists(fullname) or (return_folders and Path.isdir(fullname)):
- result.append(fullname)
- continue
- # recursively scan other folders, appending results
- if recurse:
- if Path.isdir(fullname) and not Path.islink(fullname):
- result = result + Walk( fullname, recurse, pattern, return_folders )
- return result
- if __name__ == '__main__':
- #import pdb; pdb.set_trace()
- main(sys.argv[1:])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement