pattern search
Fabian Braennstroem
f.braennstroem at gmx.de
Wed Mar 28 15:52:10 EDT 2007
Hi,
Gabriel Genellina schrieb am 03/27/2007 10:09 PM:
> En Tue, 27 Mar 2007 18:42:15 -0300, Diez B. Roggisch <deets at nospam.web.de>
> escribió:
>
>> Paul McGuire schrieb:
>>> On Mar 27, 10:18 am, "Diez B. Roggisch" <d... at nospam.web.de> wrote:
>>>> Fabian Braennstroem wrote:
>>>>> while iter:
>>>>> value = model.get_value(iter, 1)
>>>>> if value.endswith("."+ pattern): [...]
>>>>>
>>>>> Now, I would like to improve it by searching for different 'real'
>>>>> patterns just like using 'ls' in bash. E.g. the entry
>>>>> 'car*.pdf' should select all pdf files with a beginning 'car'.
>>>>> Does anyone have an idea, how to do it?
>
>>>> Use regular expressions. They are part of the module "re". And if you
>>>> use them, ditch your code above, and make it just search for a pattern
>>>> all the time. Because the above is just the case of
>>>> *.ext
>
>>> The glob module is a more direct tool based on the OP's example. The
>>> example he gives works directly with glob. To use re, you'd have to
>>> convert to something like "car.*\.pdf", yes?
>
>> I'm aware of the glob-module. But it only works on files. I was under
>> the impression that he already has a list of files he wants to filter
>> instead of getting it fresh from the filesystem.
>
> In that case the best way would be to use the fnmatch module - it already
> knows how to translate from car*.pdf into the right regexp. (The glob
> module is like a combo os.listdir+fnmatch.filter)
I have a already a list, but I 'glob' looked so easy ... maybe it is
faster to use fnmatch. When I have time I try it out...
Thanks!
Fabian
More information about the Python-list
mailing list