find.find

Marc 'BlackJack' Rintsch bj_666 at gmx.net
Tue Jan 9 19:13:38 EST 2007


In <eo15uq$hna$1 at ss408.t-com.hr>, Gigs_ wrote:

> import fnmatch, os
> 
> def find(pattern, startdir=os.curdir):
>      matches = []
>      os.path.walk(startdir, findvisitor, (matches, pattern))
>      matches.sort()
>      return matches
> 
> def findvisitor((matches, pattern), thisdir, nameshere):  #
>      for name in nameshere:
>          if fnmatch.fnmatch(name, pattern):
>              fullpath = os.path.join(thisdir, name)
>              matches.append(fullpath)
> 
> can someone explain why (matches, pattern) is doing in this two funct?

It's the first argument to `findvisitor()` which is invoked for every
directory level by `os.path.walk()`.  `findvisitor()` adds all file names
that match `pattern` to the `matches` list.

Ciao,
	Marc 'BlackJack' Rintsch



More information about the Python-list mailing list