Movatterモバイル変換
[0]ホーム
[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]ページ先頭