is for reliable?

MRAB google at mrabarnett.plus.com
Mon May 7 18:23:57 EDT 2007


On May 7, 8:46 pm, "pablo... at giochinternet.com"
<pablo... at giochinternet.com> wrote:
> Hi to all I have a question about the for statement of python. I have the
> following piece of code where cachefilesSet is a set that contains the
> names of 1398 html files cached on my hard disk
>
> for fn in cachefilesSet:
>
>     fObj = codecs.open( baseDir + fn + '-header.html', 'r', 'iso-8859-1' )
>     u = fObj.read()
>
>     v = u.lower()
>     rows = v.split('\x0a')
>
>     contentType = ''
>
>     for r in rows:
>         if r.find('content-type') != -1:
>             y = r.find(':')
>             if y != -1:
>                 z = r.find(';', y)
>                 if z != -1:
>                     contentType = r[y+1:z].strip()
>                     cE = r[z+1:].strip()
>                     characterEncoding = cE.strip('charset = ')
>                 else:
>                     contenType = r[y+1:].strip()
>                     characterEncoding = ''
>             break
>
>     if contentType == 'text/html':
>         processHTMLfile( baseDir + fn + '-body.html', characterEncoding, cardinalita )
>
>     fileCnt += 1
>     if fileCnt % 100 == 0: print fileCnt
>
[snip]
I'd like to point out what look like 2 errors in the code:

1. You have "contenType" instead of "contentType" in "contenType = r[y
+1:].strip()".

2. The string method "strip(...)" treats its string argument as a
_set_ of characters to strip, so "cE.strip('charset = ')" will strip
any leading and trailing "c", "h", "a", etc., which isn't what I think
you intended.




More information about the Python-list mailing list