pattern search
Diez B. Roggisch
deets at nospam.web.de
Tue Mar 27 17:42:15 EDT 2007
Paul McGuire schrieb:
> On Mar 27, 10:18 am, "Diez B. Roggisch" <d... at nospam.web.de> wrote:
>> Fabian Braennstroem wrote:
>>> Hi,
>>> I wrote a small gtk file manager, which works pretty well. Until
>>> now, I am able to select different file (treeview entries) just by
>>> extension (done with 'endswith'). See the little part below:
>>> self.pathlist1=[ ]
>>> self.patternlist=[ ]
>>> while iter:
>>> # print iter
>>> value = model.get_value(iter, 1)
>>> # if value is what I'm looking for:
>>> if value.endswith("."+ pattern):
>>> selection.select_iter(iter)
>>> selection.select_path(n)
>>> self.pathlist1.append(n)
>>> self.patternlist.append(value)
>>> iter = model.iter_next(iter)
>>> # print value
>>> n=n+1
>>> 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
>>
>> Diez- Hide quoted text -
>>
>> - Show quoted text -
>
> 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?
>
> (Of course, re offers much more power than simple globbing. Not clear
> how much more the OP was looking for.)
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.
Diez
More information about the Python-list
mailing list