Movatterモバイル変換


[0]ホーム

URL:


[Python-Dev] Remove str.find in 3.0?

Raymond Hettingerraymond.hettinger at verizon.net
Fri Aug 26 22:08:33 CEST 2005


> Can str.find be listed in PEP 3000 (under builtins) for removal?FWIW, here is a sample code transformation (extracted from zipfile.py).Judge for yourself whether the index version is better:Existing code:--------------    END_BLOCK = min(filesize, 1024 * 4)    fpin.seek(filesize - END_BLOCK, 0)    data = fpin.read()    start = data.rfind(stringEndArchive)    if start >= 0:     # Correct signature string was found        endrec = struct.unpack(structEndArchive, data[start:start+22])        endrec = list(endrec)        comment = data[start+22:]        if endrec[7] == len(comment):     # Comment length checks out            # Append the archive comment and start offset            endrec.append(comment)            endrec.append(filesize - END_BLOCK + start)            return endrec    return      # Error, return NoneRevised code:-------------    END_BLOCK = min(filesize, 1024 * 4)    fpin.seek(filesize - END_BLOCK, 0)    data = fpin.read()    try:        start = data.rindex(stringEndArchive)    except ValueError:        pass    else:        # Correct signature string was found        endrec = struct.unpack(structEndArchive, data[start:start+22])        endrec = list(endrec)        comment = data[start+22:]        if endrec[7] == len(comment):     # Comment length checks out            # Append the archive comment and start offset            endrec.append(comment)            endrec.append(filesize - END_BLOCK + start)            return endrec    return      # Error, return None


More information about the Python-Devmailing list

[8]ページ先頭

©2009-2025 Movatter.jp