欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python 多線程將大文件分開(kāi)下載后在合并的實(shí)例

 更新時(shí)間:2018年11月09日 09:21:28   作者:聽(tīng)雪聲的春天  
今天小編就為大家分享一篇python 多線程將大文件分開(kāi)下載后在合并的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

廢話不多說(shuō)了,上代碼吧:

import threading
import requests
import time
import os


class Mythread(threading.Thread):
  def __init__(self,url,startpos,endpos,f):
    super(Mythread,self).__init__()
    self.url=url
    self.startpos=startpos
    self.endpos=endpos
    self.fd=f
  def download(self):
    print('start thread:%s at %s'%(self.getName(),time.time()))
    headers={'Range':'bytes=%s-%s'%(self.startpos,self.endpos)}
    res=requests.get(self.url,headers=headers)
    self.fd.seek(self.startpos)
    self.fd.write(res.content)
    print('Stop thread:%s at%s'%(self.getName(),time.time()))
    self.fd.close()
  def run(self):
    self.download()
if __name__=="__main__":
  url='http://www.wendangxiazai.com/word/b-cfbdc77931b765ce050814a9-1.doc'
  filename=url.split('/')[-1]
  filesize=int(requests.head(url).headers['Content-Length'])
  print('%s filesize:%s'%(filename,filesize))


  threadnum=3
  threading.BoundedSemaphore(threadnum)#允許線程個(gè)數(shù)
  step=filesize//threadnum
  mtd_list=[]
  start=0
  end=-1
  
  tempf = open('E:\Python\py\web'+filename,'w')
  tempf.close()
  mtd_list=[]
  with open('E:\Python\py\web'+filename,'rb+')as f:
    #獲得文件句柄
    fileno=f.fileno()#返回一個(gè)整型的文件描述符,可用于底層操作系統(tǒng)的 I/O 操作
    while end<filesize-1:
      start=end+1
      end=start+step-1
      if end>filesize:
        end=filesize
      print ('Start:%s,end:%s'%(start,end))
      dup=os.dup(fileno)#復(fù)制文件句柄
      fd=os.fdopen(dup,'rb+',-1)
      t=Mythread(url,start,end,fd)
      t.start()
      mtd_list.append(t)
    for i in mtd_list:
      i.join()
  f.close()

以上這篇python 多線程將大文件分開(kāi)下載后在合并的實(shí)例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • python編譯環(huán)境配置的實(shí)現(xiàn)步驟

    python編譯環(huán)境配置的實(shí)現(xiàn)步驟

    本文主要介紹了python編譯環(huán)境配置的實(shí)現(xiàn)步驟,文中通過(guò)圖文示例介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2025-05-05
  • Python 通過(guò)正則表達(dá)式快速獲取電影的下載地址

    Python 通過(guò)正則表達(dá)式快速獲取電影的下載地址

    這篇文章主要介紹了Python 通過(guò)正則表達(dá)式快速獲取電影的下載地址,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • Numpy掩碼式數(shù)組詳解

    Numpy掩碼式數(shù)組詳解

    下面小編就為大家分享一篇Numpy掩碼式數(shù)組詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-04-04
  • Python OpenCV實(shí)現(xiàn)裁剪并保存圖片

    Python OpenCV實(shí)現(xiàn)裁剪并保存圖片

    這篇文章主要為大家詳細(xì)介紹了Python OpenCV實(shí)現(xiàn)裁剪并保存圖片,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-07-07
  • python和node.js生成當(dāng)前時(shí)間戳的示例

    python和node.js生成當(dāng)前時(shí)間戳的示例

    這篇文章主要介紹了python和node.js生成當(dāng)前時(shí)間戳的示例,幫助大家更好的理解和學(xué)習(xí)python與node.js,感興趣的朋友可以了解下
    2020-09-09
  • 如何更換python默認(rèn)編輯器的背景色

    如何更換python默認(rèn)編輯器的背景色

    在本篇內(nèi)容里小編給大家整理的是一篇關(guān)于如何更換python默認(rèn)編輯器的背景色的相關(guān)內(nèi)容,有興趣的朋友們可以學(xué)習(xí)參考下。
    2020-08-08
  • Python爬蟲(chóng)基礎(chǔ)初探selenium

    Python爬蟲(chóng)基礎(chǔ)初探selenium

    selenium最初是一個(gè)自動(dòng)化測(cè)試工具,而爬蟲(chóng)中使用它主要是為了解決requests無(wú)法執(zhí)行javaScript代碼的問(wèn)題。本文給大家分享Python爬蟲(chóng)基礎(chǔ)selenium知識(shí),包括selenium工作原理,感興趣的朋友跟隨小編一起看看吧
    2021-05-05
  • Jmeter調(diào)用Python腳本實(shí)現(xiàn)參數(shù)互相傳遞的實(shí)現(xiàn)

    Jmeter調(diào)用Python腳本實(shí)現(xiàn)參數(shù)互相傳遞的實(shí)現(xiàn)

    這篇文章主要介紹了Jmeter調(diào)用Python腳本實(shí)現(xiàn)參數(shù)互相傳遞的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • Python定時(shí)任務(wù)框架APScheduler安裝使用詳解

    Python定時(shí)任務(wù)框架APScheduler安裝使用詳解

    這篇文章主要介紹了Python定時(shí)任務(wù)框架APScheduler安裝使用詳解,重點(diǎn)介紹如何使用APscheduler實(shí)現(xiàn)python定時(shí)任務(wù),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)Python定時(shí)任務(wù)APScheduler相關(guān)知識(shí)感興趣的朋友一起看看吧
    2022-05-05
  • 使用Matplotlib繪制平行坐標(biāo)系的示例詳解

    使用Matplotlib繪制平行坐標(biāo)系的示例詳解

    平行坐標(biāo)系,是一種含有多個(gè)垂直平行坐標(biāo)軸的統(tǒng)計(jì)圖表,這篇文章主要為大家介紹了如何使用繪制平行坐標(biāo)系,需要的小伙伴可以參考一下
    2023-07-07

最新評(píng)論