使用python获取指定文件的md5码,代码和运行效果如下;
代码如图
获取wjmd5.py自己的md5为例
#--coding:utf-8
import hashlib as hashimport os.path
try: get_ipython()
except:from sys import argvs1=(os.path.dirname(argv[0]))cwd=(s1 if s1!="" else os.getcwd())os.chdir(cwd)
md5= hash.md5()
res=Nonefna=input('请输入文件名')
with open(fna, "rb") as i: md5.update(i.read())res= md5.hexdigest()
print(res)
md5的获取,这是我早期写的一个方法,你看看
def getMd5OfFile(fname):if not os.path.exists(fname):
return None
try:
f = file(fname, 'rb')
m = md5.new()
while True:
d = f.read(16384)
if not d:
break
m.update(d)
f.close()
return m.hexdigest()
except Exception,e:
getLogger().error(e)
return None
import os,hashlibdef getlistdir(path):
try: #如果path是一个文件的完整名称,os.listdir会抛出错误
fl=os.listdir(path)
except Exception as e:
fl=[]
finally:
return fl
def getallfile(path):
allfile=[]
fl=getlistdir(path)
if len(fl)!=0:
fl=list(map(lambda x:path+'\\'+x,fl))
allfile=allfile+fl
for f in fl:
allfile=allfile+getallfile(f)
return allfile
def makemd5(stri):
md5=hashlib.md5()
md5.update(stri.encode('utf-8'))
return md5.hexdigest()
def main():
myfilelist=getallfile('.') #获取当前文件'.'中的所有文件和文件夹名list
myfilestr='|'.join(myfilelist) #文件list转换为以'|'分隔的字符串
print(myfilestr) #显示要进行md5摘要加密的字符
print("md5=",makemd5(myfilestr)) #计算并显示md5码
main()
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)