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

python 多線程將大文件分開下載后在合并的實例

 更新時間:2018年11月09日 09:21:28   作者:聽雪聲的春天  
今天小編就為大家分享一篇python 多線程將大文件分開下載后在合并的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

廢話不多說了,上代碼吧:

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)#允許線程個數(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()#返回一個整型的文件描述符,可用于底層操作系統(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)#復制文件句柄
      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 多線程將大文件分開下載后在合并的實例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 一文帶你了解Python中的注釋及變量

    一文帶你了解Python中的注釋及變量

    這篇文章主要給大家介紹了關(guān)于Python中注釋及變量的相關(guān)資料,Python是一門動態(tài)類型的語言,因此無須提前聲明變量類型,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-07-07
  • 詳解如何使用Python在PDF文檔中創(chuàng)建動作

    詳解如何使用Python在PDF文檔中創(chuàng)建動作

    PDF格式因其跨平臺兼容性和豐富的功能集而成為許多行業(yè)中的首選文件格式,其中,PDF中的動作(Action) 功能尤為突出,本文將介紹如何使用Python在PDF文檔中創(chuàng)建動作,需要的朋友可以參考下
    2024-09-09
  • Python PSO算法處理TSP問題詳解

    Python PSO算法處理TSP問題詳解

    這篇文章主要介紹了Python PSO算法處理TSP問題,PSO粒子群算法是一種基于鳥類覓食開發(fā)出來的優(yōu)化算法,它是從隨機解出發(fā),通過迭代尋找最優(yōu)解,通過適應(yīng)度來評價解的品質(zhì)
    2022-11-11
  • 分析Python讀取文件時的路徑問題

    分析Python讀取文件時的路徑問題

    本篇文章通過圖文實例的方式給大家詳細分析了Python讀取文件時的路徑問題,對此有需求的朋友可以參考學習下。
    2018-02-02
  • Python實現(xiàn)的排列組合、破解密碼算法示例

    Python實現(xiàn)的排列組合、破解密碼算法示例

    這篇文章主要介紹了Python實現(xiàn)的排列組合、破解密碼算法,結(jié)合實例形式分析了Python排列組合、密碼破解相關(guān)數(shù)學運算操作技巧,需要的朋友可以參考下
    2019-04-04
  • python中的對數(shù)log函數(shù)表示及用法

    python中的對數(shù)log函數(shù)表示及用法

    在本篇文章里小編給大家整理了一篇關(guān)于python中的對數(shù)log函數(shù)表示及用法,有需要的朋友們可以學習下。
    2020-12-12
  • Python3.5面向?qū)ο蟪绦蛟O(shè)計之類的繼承和多態(tài)詳解

    Python3.5面向?qū)ο蟪绦蛟O(shè)計之類的繼承和多態(tài)詳解

    這篇文章主要介紹了Python3.5面向?qū)ο蟪绦蛟O(shè)計之類的繼承和多態(tài),結(jié)合實例形式詳細分析了Python3.5面向?qū)ο蟪绦蛟O(shè)計中類的繼承與多態(tài)常見用法及相關(guān)注意事項,需要的朋友可以參考下
    2019-04-04
  • NumPy?與?Python?內(nèi)置列表計算標準差區(qū)別詳析

    NumPy?與?Python?內(nèi)置列表計算標準差區(qū)別詳析

    這篇文章主要介紹了NumPy與Python內(nèi)置列表計算標準差區(qū)別詳析,NumPy,是Numerical?Python的簡稱,用于高性能科學計算和數(shù)據(jù)分析的基礎(chǔ)包,更多相關(guān)內(nèi)容需要的朋友可以參考一下
    2022-07-07
  • Python實現(xiàn)定時自動關(guān)閉的tkinter窗口方法

    Python實現(xiàn)定時自動關(guān)閉的tkinter窗口方法

    今天小編就為大家分享一篇Python實現(xiàn)定時自動關(guān)閉的tkinter窗口方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-02-02
  • Python?Decorator裝飾器的創(chuàng)建方法及常用場景分析

    Python?Decorator裝飾器的創(chuàng)建方法及常用場景分析

    這篇文章主要介紹了Python?Decorator裝飾器的創(chuàng)建方法及常用場景,裝飾器可以分成方法裝飾器和類裝飾器,他們的區(qū)別是一個是用函數(shù)實現(xiàn)的裝飾器,一個是用類實現(xiàn)的裝飾器,他們也都能在方法和類上進行裝飾,需要的朋友可以參考下
    2022-07-07

最新評論