日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Python實現多線程下載腳本的示例代碼

瀏覽:198日期:2022-07-31 09:04:40

0x01 分析

一個簡單的多線程下載資源的Python腳本,主要實現部分包含兩個類:

Download類:包含download()和get_complete_rate()兩種方法。

download()方法種首先用 urlopen() 方法打開遠程資源并通過 Content-Length獲取資源的大小,然后計算每個線程應該下載網絡資源的大小及對應部分嗎,最后依次創建并啟動多個線程來下載網絡資源的指定部分。 get_complete_rate()則是用來返回已下載的部分占全部資源大小的比例,用來回顯進度。

ThreadDownload類:該線程類繼承了threading.Thread類,包含了一個run()方法。

run()方法主要負責每個線程讀取網絡數據并寫入本地。

0x02 代碼

# 文件名:ThreadDownload.pyimport threadingfrom urllib.request import *class Download: def __init__(self, link, file_path, thread_num): # 下載路徑 self.link = link # 保存位置 self.file_path = file_path # 使用多少線程 self.thread_num = thread_num # 初始化threads數組 self.threads = [] def download(self): req = Request(url=self.link, method=’GET’) req.add_header(’Accept’, ’*/*’) req.add_header(’Charset’, ’UTF-8’) req.add_header(’Connection’, ’Keep-Alive’) f = urlopen(req) # 獲取要下載的文件的大小 self.file_size = int(dict(f.headers).get(’Content-Length’, 0)) f.close() # 計算每個線程要下載的資源的大小 current_part_size = self.file_size // self.thread_num + 1 for i in range(self.thread_num): # 計算每個線程下載的開始位置 start_pos = i * current_part_size # 每個線程使用一個wb模式打開的文件進行下載 t = open(self.file_path, ’wb’) t.seek(start_pos, 0) # 創建下載線程 td = ThreadDownload(self.link, start_pos, current_part_size, t) self.threads.append(td) td.start() # 獲下載的完成百分比 def get_complete_rate(self): sum_size = 0 for i in range(self.thread_num): sum_size += self.threads[i].length return sum_size / self.file_sizeclass ThreadDownload(threading.Thread): def __init__(self, link, start_pos, current_part_size, current_part): super().__init__() # 下載路徑 self.link = link # 當前線程的下載位置 self.start_pos = start_pos # 定義當前線程負責下載的文件大小 self.current_part_size = current_part_size # 當前文件需要下載的文件快 self.current_part = current_part # 定義該線程已經下載的字節數 self.length = 0 def run(self): req = Request(url = self.link, method=’GET’) req.add_header(’Accept’, ’*/*’) req.add_header(’Charset’, ’UTF-8’) req.add_header(’Connection’, ’Keep-Alive’) f = urlopen(req) # 跳過self.start_pos個字節,表明該線程只負責下載自己負責的那部分內容 for i in range(self.start_pos): f.read(1) # 讀取網絡數據,并寫入本地 while self.length < self.current_part_size: data = f.read(1024) if data is None or len(data) <= 0:break self.current_part.write(data) # 累計該線程下載的總大小 self.length += len(data) self.current_part.close() f.close()

#!/usr/bin/env python # -*- coding: utf-8 -*- # 文件名:thread_download-master.pyimport sysimport timefrom ThreadDownload import *def show_process(dl): while dl.get_complete_rate() < 1: complete_rate = int(dl.get_complete_rate()*100) print(’r’ + ’下載中···(已下載’ + str(complete_rate) + ’%)’, end=’’, flush=True) time.sleep(0.01)def main(): try: Link = input(’[+]’ + ’Link: ’) file_path = input(’[+]’ + ’File Path: ’) thread_number = input(’[+]’ + ’Thread Number: ’) thread_number = int(thread_number) dl = Download(Link, file_path, thread_number) dl.download() print(’n開始下載!’) show_process(dl) print(’r’ + ’下載中···(已下載’ + ’100%)’, end=’’, flush=True) print(’n下載完成!’) except Exception: print(’Parameter Setting Error’) sys.exit(1)if __name__==’__main__’: main()

0x03 運行結果

下載歌曲《男孩》為例,下載到./Download/目錄下并命名為男孩.mp3,設置5個線程:

Python實現多線程下載腳本的示例代碼

Python實現多線程下載腳本的示例代碼

下載成功:

Python實現多線程下載腳本的示例代碼

到此這篇關于Python實現多線程下載腳本的示例代碼的文章就介紹到這了,更多相關Python 多線程下載腳本內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
久久97视频| 欧美久久香蕉| 国产 日韩 欧美 综合 一区| 国产日韩中文在线中文字幕| 欧美.日韩.国产.一区.二区| 精品国产美女a久久9999| 国产成年精品| 丝袜美腿诱惑一区二区三区 | 亚洲一卡久久| 爽好久久久欧美精品| 黄色成人在线网址| 日韩精品一区二区三区av | 国产视频一区二| 成人国产精品一区二区免费麻豆| 日韩欧美一区二区三区免费看| 日韩中文在线播放| 国产亚洲精品v| 国产精东传媒成人av电影| 欧美午夜网站| 成人美女视频| 先锋影音国产一区| 欧美黄页在线免费观看| 成人国产精品| 99成人在线视频| 亚洲有吗中文字幕| 久久久久九九精品影院| 亚洲1234区| 91精品日本| 91视频久久| 国产高潮在线| 蜜臀久久久久久久| 国产精品亚洲片在线播放| 日本免费一区二区三区四区| 日本不卡视频在线| 丝袜av一区| 欧美极品中文字幕| 中文字幕日韩亚洲| 99成人超碰| 玖玖精品视频| 国产精品18| 欧美一级专区| 日本在线精品| 精品深夜福利视频| 青草国产精品| 老牛影视一区二区三区| 日韩电影在线视频| 欧美激情在线精品一区二区三区| 一区在线免费| 日韩精品欧美激情一区二区| 麻豆久久久久久久| 日本精品另类| 久久亚洲色图| 久久99伊人| 一区二区精品伦理...| 国产伦精品一区二区三区千人斩 | 美女被久久久| 亚洲欧美日韩综合国产aⅴ| 136国产福利精品导航网址| 国产夫妻在线| 久久久久久久久丰满| 欧美日韩在线二区| 激情欧美国产欧美| 日韩欧美一区二区三区免费观看| 日韩美女一区二区三区在线观看| 精品视频一区二区三区在线观看| 国产精品尤物| 国产精品色婷婷在线观看| 国产欧美日韩在线一区二区 | 午夜宅男久久久| 亚洲五月综合| 国产欧美另类| 国产一区国产二区国产三区| 久久精品国产亚洲一区二区三区| 色婷婷综合网| 99热免费精品| 91精品国产自产观看在线| 欧美国产日韩电影| 日韩一区二区三区免费| 一区在线观看| 国产欧美另类| 国产理论在线| 热久久久久久久| 久久99精品久久久野外观看| 私拍精品福利视频在线一区| 三级欧美韩日大片在线看| 久久精品超碰| 在线观看精品| 日韩精品视频一区二区三区| 国产精品黑丝在线播放| 免费日韩精品中文字幕视频在线| 国产亚洲久久| 亚洲免费高清| 精品高清久久| 亚洲午夜久久| 成人日韩在线观看| 日韩精品三区四区| 久久精品中文| 91亚洲一区| 国产日产一区| 国产视频一区免费看| 精品一区二区三区在线观看视频| 亚洲一区中文| 亚洲1234区| 精品国产一区二区三区噜噜噜| 日韩精品一卡二卡三卡四卡无卡| 中文字幕人成乱码在线观看 | 免费日韩av| 国产综合精品| 激情国产在线| 久久精品九色| 久久国产日韩欧美精品| 亚洲二区视频| 国产精品第一| 国产精品一区二区三区美女| 久久亚洲欧美| 女人天堂亚洲aⅴ在线观看| 中文在线а√天堂 | 精品欠久久久中文字幕加勒比| 日韩高清电影免费| 自拍日韩欧美| 欧美日韩黑人| 伊人精品在线| 欧美天堂亚洲电影院在线观看| 欧美日韩精品免费观看视完整| 久久精品国产99国产精品| 久久成人福利| bbw在线视频| 欧美日韩一区二区综合| 欧美日韩国产在线观看网站| 今天的高清视频免费播放成人| 久久国产日韩| 欧美精品一线| 免费黄网站欧美| 日韩精彩视频在线观看| 日韩精品一级二级| 国产欧美自拍| 精品国产精品国产偷麻豆| 黑森林国产精品av| 欧美日韩国产一区二区三区不卡| 一本色道精品久久一区二区三区| 亚洲欧美不卡| 欧美啪啪一区| 成人日韩精品| 蜜桃一区二区三区在线| 欧美精品中文字幕亚洲专区| 国产精品久久久久久久久久10秀| 欧美日韩免费观看视频| 亚洲一区二区成人| 91成人精品在线| 久久中文在线| 国产精品日韩| 九九九精品视频| 国产亚洲精品v| 精品少妇一区| 免费人成黄页网站在线一区二区| 国产精成人品2018| 99re国产精品| 狠狠久久伊人| 三级久久三级久久久| 国产美女高潮在线| 亚洲精品麻豆| 欧美日韩精品在线一区| 国产精品综合| 美女精品在线观看| 国产精品magnet| 免费成人在线观看| 日韩一区二区三区在线免费观看| 日本在线不卡视频| 欧美精品羞羞答答| 国产成人精选| 国产精品大片免费观看| 综合国产视频| 午夜精品亚洲| 国产99亚洲| 亚洲精品在线影院| 国模大尺度视频一区二区| 日韩高清二区| 免费不卡在线观看| 亚洲一区二区成人| 国产精品国码视频| 亚洲一区欧美| av不卡在线看| 亚洲欧洲日本mm| 成人羞羞在线观看网站| 精品中文在线| 国产精品亚洲综合在线观看| 亚洲综合精品| 国产亚洲精品美女久久| 日韩在线播放一区二区| 另类激情亚洲| 中文一区一区三区免费在线观 | 天堂av一区| 日韩专区欧美专区| 亚洲日本免费电影| 蜜桃久久精品一区二区| 蜜臀久久久久久久| 日韩综合一区二区三区| 亚洲尤物av| 国产高清亚洲| 国产传媒av在线|