检查时,两个相同CSV文件的Hexdigest md5值有何不同。两个CSV文件之间的区别在于,一个是制表符分隔,另一个是逗号分隔,否则值相同。
f1 = open(r'D:\Temporary\New File.csv',mode='r')
f2 = open(r'D:\Temporary\Old File.csv',mode='r')
print hashlib.md5(t1).hexdigest(),' ',hashlib.md5(t2).hexdigest()
if hashlib.md5(t1).hexdigest()== hashlib.md5(t2).hexdigest():
print "Match"
else:
print "Not Match"
输出显示:
a4b2720cafdcb859e7ef07a7a3564ba3 237a5c28b890f94636035482a363853a
Not Match
另一方面,这段代码给出了正确的输出,我引入了read()函数,然后获取了md5摘要。现在键匹配。
f1 = open(r'D:\Temporary\New File.csv',mode='r')
f2 = open(r'D:\Temporary\Old File.csv',mode='r')
print f1.read()
print f2.read()
print hashlib.md5(t1).hexdigest(),' ',hashlib.md5(t2).hexdigest()
if hashlib.md5(t1).hexdigest()== hashlib.md5(t2).hexdigest():
print "Match"
else:
print "Not Match"
现在,输出是:
Ultimator Start Code Start Count
Ultimator,Start Code,Start Count,,,,
d41d8cd98f00b204e9800998ecf8427e d41d8cd98f00b204e9800998ecf8427e
Match
答案 0 :(得分:1)
MD5是一个加密哈希函数,用于处理文件的原始数据。如果两个CSV文件具有相同的内容(仅供您考虑),只使用不同的分隔符,则原始数据会有所不同。这就是为什么MD5 hexdigest值也必须不同。
之前调用file.read
时,此文件的位置指针将位于文件的末尾,并在返回file.read
后再次调用''
:
>>> hashlib.md5('').hexdigest()
'd41d8cd98f00b204e9800998ecf8427e'