Dumb glob question
Python Dunce
PDunce at somewhere.invalid
Tue Feb 8 20:18:59 EST 2005
More information about the Python-list mailing list
Tue Feb 8 20:18:59 EST 2005
- Previous message (by thread): tcl/tk naming scheme vs python's
- Next message (by thread): Dumb glob question
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Michael Hoffman <cam.ac.uk at mh391.invalid> wrote in comp.lang.python: > Python Dunce wrote: > >> So if I happen >> to be processing 'foo [bar].par2' >> >> glob.glob(filename[:-5]+'.*par2') >> >> doesn't return anything. Using >> win32api.FindFiles(filename[:-5]+'.*par2') works perfectly, but I don't >> want to rely on win32api functions. I hope that made more sense :). > > If you look in the source for glob.py, you will find that it calls the > fnmatch module, and this is the docstring for fnmatch.translate(): > > """Translate a shell PATTERN to a regular expression. > > There is no way to quote meta-characters. > """ > > So you cannot do what you want with glob. > > You can replace [] with ? in your glob string, if you are sure that > there won't be other characters there. That's a bit of a hack, and I > wouldn't do it. > > In my mind it would probably be best to do: > > re_vol = re.compile(re.escape(startpart) + ".*vol.*") > lst = [filename for filename in os.listdir(".") if > re_vol.match(filename)] > > I changed "list" to "lst" because the former shadows a built-in. Thanks, that should do the trick! I had tried basically the same thing once but I was getting back empty lists. I think it was just a brain fart involving a case sensitive regex that didn't match the files I was testing it on :/.
- Previous message (by thread): tcl/tk naming scheme vs python's
- Next message (by thread): Dumb glob question
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list