Phlip wrote: >> - Open the file in binary mode. > > I had tried open(path, 'rb') and it didn't change the "wrong" number. > > And I added --binary to my evil md5sum version, and it didn't change > the "right" number! > > Gods bless those legacy hacks that will never die, huh? But I'm using > Ubuntu (inside VMWare, on Win7, on a Core i7, because I rule), so that > might explain why "binary mode" is a no-op.
Indeed. That part was a defensive measure mostly meant to make your function Windows-proof. >> - Do the usual dance for default arguments: >> def file_to_hash(path, m=None): >> if m is None: >> m = hashlib.md5() > > Not sure why if that's what the defaulter does? I did indeed get an > MD5-style string of what casually appeared to be the right length, so > that implies the defaulter is not to blame... The first call will give you the correct checksum, the second: not. As the default md5 instance remembers the state from the previous function call you'll get the checksum of both files combined. -- http://mail.python.org/mailman/listinfo/python-list