Glob in python which supports the ** wildcard

Kurt Mueller kurt.alfred.mueller at sunrise.ch
Mon Nov 22 18:04:08 EST 2010


HI,


Am 22.11.2010 um 23:05 schrieb Stefan Sonnenberg-Carstens:
> Am 22.11.2010 22:43, schrieb Martin Lundberg;
>> 
>> I want to be able to let the user enter paths like this:
>> apps/name/**/*.js
>> and then find all the matching files in apps/name and all its
>> subdirectories. However I found out that Python's glob function
>> doesn't support the recursive ** wildcard. Is there any 3rd party glob
>> function which do support **?
>> 
> os.walk() or os.path.walk() can be used.
> You need to traverse the file system.
> AFAIK there is no support for this.


Or python only:
----------------------------------------------------------
#!/usr/bin/env python
import os, fnmatch
# generator:
def find_files(directory, pattern):
    for root, dirs, files in os.walk(directory):
        for basename in files:
            if fnmatch.fnmatch(basename, pattern):
                filename = os.path.join(root, basename)
                yield filename
# process each file as it is found:
for filename in find_files('apps/name', '*.js'):
    print 'found java source:', filename
----------------------------------------------------------
Found at
http://stackoverflow.com/questions/2186525/use-a-glob-to-find-files-recursively-in-python

Have a nice day
-- 
kurt.alfred.mueller at gmail.com




More information about the Python-list mailing list