Michael Hoffman <[EMAIL PROTECTED]> 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 :/. -- http://mail.python.org/mailman/listinfo/python-list