python下载文件并计算md5值

本文介绍如何使用Python从互联网下载文件,并详细步骤计算下载文件的MD5校验值,确保文件完整性和一致性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import urllib2,os,md5,shutil

#下载文件
def downloadfile(url,filename):
        headers = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 \
                        (KHTML, like Gecko) Chrome/51.0.    2704.103 Safari/537.36"}
        request = urllib2.Request(url,headers = headers)
        try:
            response = urllib2.urlopen(request)
        except:
            print('ERROR:Cannot download '+url)
            return False
        else:
            createDir(filename)
            with open(filename,'wb') as f:
                    f.write(response.read())
            return True

#计算文件的MD5值
def calMD5(filename):
    with open(filename,'rb') as file:
        text=file.read()
        md=md5.new()
        md.update(text)
        return md.hexdigest()

#计算rootdir目录下所有文件的md5值并保存到文件filename中
def submd5(file,rootdir,predir):
    list=os.listdir(rootdir)
    for index in range(0,len(list)):
        path=os.path.join(rootdir,list[index])
        curdir=list[index]
        if predir:
            curdir=os.path.join(predir,list[index])
        if os.path.isfile(path):      
            file.write("%s  %s\n" %(curdir,calMD5(path))) #保存HashFile/下相对路径
        else:
            submd5(file,path,curdir)

def createMD5(rootdir,filename):   
    with open(filename,'w') as file:
        submd5(file,rootdir,None)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值