【Python真的很强大】md5sum in Python 博客分类: Modelpython md5sum
程序员文章站
2024-03-13 10:09:39
...
''' md5sum in Python ''' try: from hashlib import md5 #Python2.5 or later version except: from md5 import md5 #Python2.4 or before version import sys import urllib import os.path def sumFile(fobj): m = md5() while True: d = fobj.read() if not d: break m.update(d) del(d) return m.hexdigest() def sumStr(str): m = md5() m.update(str.encode('utf-8')) return m.hexdigest() '''def sumStr(str): m = md5() for c in str: m.update(c) return m.hexdigest()''' def md5SumLocalFile(fname): try: f = open(fname, 'rb') except: return None ret = sumFile(f) f.close() return ret def md5SumRemoteFile(fname): try: f = urllib.urlopen(fname, 'rb') #f = open(fname, 'rb') except: return None ret = sumFile(f) f.close() return ret def md5sum(obj,objType='str'): if isinstance(obj, basestring): if obj.startswith('http') or obj.startswith('HTTP') or obj.startswith('ftp') or obj.startswith('FTP') : return md5SumRemoteFile(obj) elif os.path.isfile(obj): return md5SumLocalFile(obj) elif os.path.isfile(obj)==False and objType=='file': return None else: return sumStr(obj) elif isinstance(obj,object): return sumFile(obj) else: return None res=sumStr('1;2;3;4;5\n') print res res=md5sum('/tmp/x.txt','file') print res #测试发现把为文本存入文件,对比md5sum发现一样,但要注意文件结束符以及行结束符!
推荐阅读
-
【Python真的很强大】md5sum in Python 博客分类: Modelpython md5sum
-
【Python真的很强大】开发简易在线搜索 博客分类: pythonModel pythonhttp serverhtml parseropen local default browser
-
【Python真的很强大】程序Log实时监控 博客分类: Modelpython websockethtml5pywebsocketserver
-
【Python真的很强大】使用yield优雅抓取网页分页数据 博客分类: python yield
-
【Python真的很强大】使用yield优雅抓取网页分页数据 博客分类: python yield
-
【Python真的很强大】使用telnetlib编写nagios命令来监控远程主机cpu-load 博客分类: pythonnagios nagiostelnetlib