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

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

python 下載文件的幾種方式分享

瀏覽:27日期:2022-06-23 09:39:42
1 、一般同步下載

示例代碼:

import requestsimport osdef downlaod(url, file_path): headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Firefox/68.0' } r = requests.get(url=url, headers=headers) with open(file_path, 'wb') as f: f.write(r.content) f.flush()2、 使用流式請求,requests.get方法的stream

默認情況下是stream的值為false,它會立即開始下載文件并存放到內存當中,倘若文件過大就會導致內存不足的情況,程序就會報錯。當把get函數的stream參數設置成True時,它不會立即開始下載,當你使用iter_content或iter_lines遍歷內容或訪問內容屬性時才開始下載,需要注意一點:文件沒有下載之前,它也需要保持連接。

iter_content:一塊一塊的遍歷要下載的內容iter_lines:一行一行的遍歷要下載的內容

使用上面兩個函數下載大文件可以防止占用過多的內存,因為每次只下載小部分數據。

示例代碼:

3 、異步下載文件

由于request的請求是阻塞式的,所以要用aiohttp模塊來發起請求。

示例代碼:

import aiohttpimport asyncioimport osasync def handler(url, file_path): headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Firefox/68.0' } async with aiohttp.ClientSession() as session: r = await session.get(url=url, headers=headers) with open(file_path, 'wb') as f: f.write(await r.read()) f.flush() os.fsync(f.fileno())loop = asyncio.get_event_loop()loop.run_until_complete(handler(url, file_path))4、 異步拆分下載文件

上面用的是一個協程下載一個文件,下面的方法是將文件分成幾部分,每個部分用一個協程下載,最后再寫入文件。

下面這個例子用的是流式寫入,即把內容寫入到磁盤里面。

import aiohttpimport asyncioimport timeimport osasync def consumer(queue): option = await queue.get() start = option['start'] end = option['end'] url = option['url'] filename = option['filename'] i = option['i'] print(f'第{i}個任務開始運行') async with aiohttp.ClientSession() as session: headers = {'Range': f'bytes={start}-{end}'} r = await session.get(url=url, headers=headers) with open(filename, 'rb+') as f: f.seek(start) while True:chunk = await r.content.read(end - start)if not chunk: breakf.write(chunk)f.flush()os.fsync(f.fileno())print(f'第{i}個任務正在寫入中ing') queue.task_done() print(f'第{i}個任務寫入成功')async def producer(url, headers, filename, queue, coro_num): async with aiohttp.ClientSession() as session: resp = await session.head(url=url, headers=headers) file_size = int(resp.headers['content-length']) # 創建一個文件 with open(filename, 'wb') as f: pass part = file_size // coro_num for i in range(coro_num): start = part * i if i == coro_num - 1:end = file_size else:end = start + part info = {'start': start,'end': end,'url': url,'filename': filename,'i': i, } queue.put_nowait(info)async def main(): # 需要填的有url,filename,coro_num url = '' filename = '' coro_num = 0 headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Firefox/68.0' } queue = asyncio.Queue(coro_num) await producer(url, headers, filename, queue, coro_num) task_list = [] for i in range(coro_num): task = asyncio.create_task(consumer(queue)) task_list.append(task) await queue.join() for i in task_list: i.cancel() await asyncio.gather(*task_list)startt = time.time()loop = asyncio.get_event_loop()loop.run_until_complete(main())end = time.time() - starttprint(f'用了{end}秒')5、注意

以上的示例都是介紹思路,程序并不健壯,健壯的程序需要加入錯誤捕獲和錯誤處理。

以上就是python 下載文件的幾種方式分享的詳細內容,更多關于python 下載文件的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
欧美成a人片免费观看久久五月天| 五月天激情综合网| 日本不卡一区二区| 国产中文欧美日韩在线| av最新在线| 亚洲黄页一区| 蜜臀av亚洲一区中文字幕| 久久精品五月| 国产精品色婷婷在线观看| 国产一级久久| 日韩一区欧美二区| 91成人福利| 在线观看视频免费一区二区三区| 亚洲一级二级| 激情五月综合| 国产精品美女久久久浪潮软件| 91成人网在线观看| 日韩中文字幕亚洲一区二区va在线| 亚洲作爱视频| 亚洲精品国产日韩| 国产精品一区二区三区美女| 久久精品免费看| 久久国产日本精品| 久久精品国产大片免费观看| 一区在线免费| 日韩一区二区三区精品视频第3页| 91p九色成人| 精品三级av在线导航| 欧美日中文字幕| 丝袜美腿亚洲色图| 久久国产尿小便嘘嘘| 风间由美中文字幕在线看视频国产欧美| 精品捆绑调教一区二区三区| 一区二区自拍| 日本成人在线不卡视频| 精品伊人久久| 午夜影院欧美| 欧美日韩1区2区3区| 日韩大片免费观看| 亚洲欧洲另类| 国产精品一卡| 今天的高清视频免费播放成人| 日韩在线观看一区二区三区| 黄色aa久久| 亚洲精品精选| 亚洲性色av| 国产情侣一区在线| 97久久超碰| 视频一区欧美日韩| 日韩一级不卡| 日韩影院在线观看| 亚洲尤物在线| 中文无码日韩欧| 日韩精品中文字幕吗一区二区 | 蜜芽一区二区三区| 日韩中文字幕| 香蕉久久一区| 国产精品亚洲四区在线观看| 激情不卡一区二区三区视频在线| 国产精品自拍区| 久久在线91| 人人香蕉久久| 一区二区电影| 国产欧美另类| 麻豆精品视频在线观看视频| 欧美特黄一区| 欧美亚洲tv| 午夜精品久久久久久久久久蜜桃| 国产精品视区| 97精品国产一区二区三区 | 成人午夜网址| 国产一区调教| 一本大道色婷婷在线| 欧美日韩在线观看首页| 亚洲高清影视| 亚洲一级高清| 亚洲国产日韩欧美在线| 亚洲一区日韩在线| 99国产精品99久久久久久粉嫩| 欧美亚洲精品在线| 日本在线不卡视频一二三区| 久久久国产精品入口麻豆| 免费精品视频在线| av资源中文在线| 国产精品成人3p一区二区三区| 久久久成人网| 青青在线精品| 免费久久精品| 国产欧美精品久久| 亚洲欧洲国产精品一区| 黑人精品一区| 精品一区二区男人吃奶| 国产精品腿扒开做爽爽爽挤奶网站| 国产在视频一区二区三区吞精| 日韩精品一二区| 激情综合网站| 国产精品magnet| 日本高清久久| 欧美日韩精品一区二区视频| 国产高潮在线| 国产免费久久| 日韩激情综合| 日韩视频一区二区三区在线播放免费观看| 日韩深夜视频| 欧美亚洲国产日韩| 美女国产一区二区三区| 五月亚洲婷婷 | 一区二区小说| 亚洲国产成人二区| 国产欧美日韩精品一区二区免费 | 日韩精品1区| 欧美日韩免费看片| 视频一区中文字幕精品 | 国产精品伊人| 免费在线观看不卡| 欧美二三四区| 国产精品主播在线观看| 高清不卡亚洲| 精品黄色一级片| 国产亚洲一区在线| 日韩视频一区二区三区在线播放免费观看| 国产精品尤物| 欧美日韩a区| 亚洲精品99| 香蕉久久国产| 亚洲色图网站| 日韩精品免费一区二区三区| 亚洲综合国产| 久久精品中文| 精品精品国产三级a∨在线| 麻豆精品一区二区综合av| 日韩国产精品久久久久久亚洲| 日韩中文字幕亚洲一区二区va在线| 尤物tv在线精品| 国产一区二区色噜噜| 国产白浆在线免费观看| 精品久久久久中文字幕小说| 亚洲欧美日韩专区| 国产伦久视频在线观看| 国产一区二区三区四区五区 | 欧美日韩视频网站| 久久av超碰| 午夜久久美女| 久久亚洲成人| 久久福利毛片| 在线亚洲人成| 国产精品黑丝在线播放| 日韩国产欧美在线播放| 欧美日韩伊人| 欧美激情三区| 日韩国产欧美| 福利在线免费视频| 99久久精品网站| 欧美一级精品| 日本中文字幕视频一区| 日韩精品免费观看视频| 久久精品国产亚洲一区二区三区| 国产一区丝袜| 亚洲国产一区二区在线观看| 性色一区二区| 国产精品一区二区精品 | 亚洲精品黄色| 欧美激情五月| 国内精品麻豆美女在线播放视频| 日av在线不卡| 国产精品亚洲二区| 国产在线观看91一区二区三区 | 18国产精品| 日韩中文在线电影| 在线成人动漫av| 欧美久久精品一级c片| 亚洲欧洲一区| 无码日韩精品一区二区免费| 精品久久电影| 国产资源在线观看入口av| 六月丁香综合| 国产视频一区二| 欧美粗暴jizz性欧美20| 中文字幕日韩亚洲| 国产一区二区三区不卡视频网站 | 久久99精品久久久野外观看| 亚洲一区二区三区久久久| 美女精品视频在线| 亚洲91网站| 日韩在线观看一区二区| 久久理论电影| 电影亚洲精品噜噜在线观看| 日本在线成人| 午夜精品久久久久久久久久蜜桃| 国产在线看片免费视频在线观看| 亚洲高清av| 9999国产精品| аⅴ资源天堂资源库在线| 午夜精品亚洲| 日本欧美久久久久免费播放网| 国产精品二区不卡| 在线一区免费| 国产乱人伦精品一区| 久久99精品久久久久久园产越南 | 亚洲精品国产日韩|