check if files are the same on Windows
Shane Geiger
sgeiger at ncee.net
Mon Mar 19 12:55:08 EDT 2007
In the unix world, 'fc' would be like diff.
"""
Python example of checksumming files with the MD5 module.
In Python 2.5, the hashlib module would be preferable/more elegant.
"""
import md5
import string, os
r = lambda f: open(f, "r").read()
def readfile(f,strip=False): return (strip and stripper(r(f))) or r(f)
def writefile(f, data, perms=750): open(f, "w").write(data) and
os.chmod(f, perms)
def get_md5(fname):
hash = md5.new()
contents = readfile(fname)
hash.update(contents)
value = hash.digest()
return (fname, hash.hexdigest())
import glob
for f in glob.glob('*'):
print get_md5(f)
> A crude way to check if two files are the same on Windows is to look
> at the output of the "fc" function of cmd.exe, for example
>
> def files_same(f1,f2):
> cmnd = "fc " + f1 + " " + f2
> return ("no differences" in popen(cmnd).read())
>
> This is needlessly slow, because one can stop comparing two files
> after the first difference is detected. How should one check that
> files are the same in Python? The files are plain text.
>
>
--
Shane Geiger
IT Director
National Council on Economic Education
sgeiger at ncee.net | 402-438-8958 | http://www.ncee.net
Leading the Campaign for Economic and Financial Literacy
-------------- next part --------------
A non-text attachment was scrubbed...
Name: sgeiger.vcf
Type: text/x-vcard
Size: 310 bytes
Desc: not available
URL: <http://mail.python.org/pipermail/python-list/attachments/20070319/8c01c161/attachment.vcf>
More information about the Python-list
mailing list