Something weird about re.finditer()
justin.mailinglists at gmail.com
Wed Apr 15 11:10:16 CEST 2009
On Apr 15, 4:46 pm, Gilles Ganault <nos... at nospam.com> wrote:
> re_block = re.compile('before (.+?) after',re.I|re.S|re.M)
> #Here, get web page and put it into "response"
> blocks = None
> blocks = re_block.finditer(response)
> if blocks == None:
> print "No block found"
> print "Before blocks"
> for block in blocks:
> #Never displayed!
> print "In blocks"
> Since "blocks" is no longer set to None after calling finditer()...
> but doesn't contain a single block... what does it contain then?
> Thank you for any tip.
because finditer returns a generator which in your case just happens
to be empty
>>> import re
>>> patt = re.compile('foo')
>>> gen = patt.finditer('bar')
>>> gen is None
>>> gen == None
<callable-iterator object at 0x00E55B70>
More information about the Python-list