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