python多线程将大文件分开下载后在合并的实例

  

<强>废话不多说了,上代码吧:

        进口线程   进口的要求   导入的时间   进口操作系统         类Mythread (threading.Thread):   def __init__(自我、url、startpos endpos f):   超级(Mythread自我). __init__ ()   self.url url=self.startpos=startpos   self.endpos=endpos   self.fd=f   def下载(自我):   print(螺纹:% s % s的% (self.getName (), time.time ()))   头={“范围”:“字节=% s - % s”% (self.startpos self.endpos)}   res=requests.get (self.url头=标题)   self.fd.seek (self.startpos)   self.fd.write (res.content)   打印(“停止线程:% s % s的% (self.getName (), time.time ()))   self.fd.close ()   def运行(自我):   self.download ()   if __name__==癬_main__”:   url=' http://www.wendangxiazai.com/word/b cfbdc77931b765ce050814a9 - 1. - doc”   文件名=url.split (“/? [1]   文件大?int (requests.head (url) .headers['内容长度'])   打印(' % s文件大小:% s ' %(文件名,文件大小)         threadnum=3   threading.BoundedSemaphore (threadnum) #允许线程个数   一步=//threadnum文件大小   mtd_list=[]=0开始   结束=1      tempf=开放(“E: \ Python \ py \ web”+文件名,“w”)   tempf.close ()   mtd_list=[]   张开(“E: \ Python \ py \ web”+文件名,rb +) f:   #获得文件句柄   fileno=f.fileno() #返回一个整型的文件描述符,可用于底层操作系统的I/O操作   虽然end文件大小:   结束=文件大小   打印('开始:% s,结束:% s %(开始、结束)   dup=os.dup (fileno) #复制文件句柄   fd=os.fdopen (dup的rb + 1)   t=Mythread (url,开始,结束,fd)   t.start ()   mtd_list.append (t)   因为我在mtd_list:   i.join ()   f.close ()   之前      

以上这篇python多线程将大文件分开下载后在合并的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

python多线程将大文件分开下载后在合并的实例