婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > python 下載文件的幾種方式分享

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

熱門標簽:打印谷歌地圖標注 佛山通用400電話申請 廣東旅游地圖標注 蘇州人工外呼系統軟件 電話機器人貸款詐騙 京華圖書館地圖標注 電話外呼系統招商代理 看懂地圖標注方法 淮安呼叫中心外呼系統如何

1 、一般同步下載

示例代碼:

import requests
import os

def 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 aiohttp
import asyncio
import os


async 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 aiohttp
import asyncio
import time
import os


async 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:
          break
        f.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() - startt
print(f"用了{end}秒")

5、注意

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

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

您可能感興趣的文章:
  • 用Python自動下載網站所有文件
  • python基于paramiko庫遠程執行 SSH 命令,實現 sftp 下載文件
  • Python解析m3u8拼接下載mp4視頻文件的示例代碼
  • python爬蟲智能翻頁批量下載文件的實例詳解
  • python 下載文件的幾種方法匯總
  • python 基于selectors庫實現文件上傳與下載
  • Python實現FTP文件定時自動下載的步驟
  • Python 使用SFTP和FTP實現對服務器的文件下載功能
  • python從ftp獲取文件并下載到本地
  • Python根據URL地址下載文件并保存至對應目錄的實現

標簽:衡水 江蘇 呼和浩特 湖州 中山 股票 駐馬店 畢節

巨人網絡通訊聲明:本文標題《python 下載文件的幾種方式分享》,本文關鍵詞  python,下載,文件,的,幾種,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《python 下載文件的幾種方式分享》相關的同類信息!
  • 本頁收集關于python 下載文件的幾種方式分享的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    亚洲高清免费视频| 8x福利精品第一导航| 亚洲成a人在线观看| 国产视频不卡一区| 日韩免费福利电影在线观看| 九色porny丨国产精品| 水野朝阳av一区二区三区| 亚洲日本在线天堂| 亚洲国产精品成人综合| 欧美mv日韩mv亚洲| 91国内精品野花午夜精品| 欧美在线啊v一区| 日本久久一区二区| 色老汉av一区二区三区| 99精品国产99久久久久久白柏| av在线一区二区| 成人国产精品免费观看动漫| 国产乱妇无码大片在线观看| 激情欧美日韩一区二区| 免费在线观看一区二区三区| 亚洲精品视频在线看| 日韩一区在线免费观看| 欧美激情综合在线| 国产精品看片你懂得 | 亚洲欧洲一区二区三区| 国产精品久久久久久亚洲伦| 久久久久青草大香线综合精品| 欧美变态凌虐bdsm| 国产亚洲精品7777| 精品国产3级a| 一区二区欧美精品| 亚洲午夜免费电影| 日韩福利视频导航| 久久精品国产久精国产| 精品夜夜嗨av一区二区三区| 国产高清久久久久| 色综合天天综合色综合av| 91福利区一区二区三区| 337p亚洲精品色噜噜狠狠| 91免费看片在线观看| 宅男噜噜噜66一区二区66| 精品久久久久久久久久久院品网| 337p粉嫩大胆色噜噜噜噜亚洲| 久久久久88色偷偷免费 | 精品亚洲国产成人av制服丝袜| 激情欧美日韩一区二区| 岛国精品在线观看| 欧洲日韩一区二区三区| 26uuu久久天堂性欧美| 久久久久久久久免费| 午夜视频在线观看一区| 香蕉加勒比综合久久| 激情综合网av| 欧美日韩精品一区二区三区蜜桃| 欧美大片国产精品| 亚洲欧美欧美一区二区三区| 亚洲另类一区二区| 国产一区二区三区在线观看精品| 91丨porny丨首页| 日韩精品一区二区三区在线 | 欧美不卡一区二区三区四区| 国产精品麻豆欧美日韩ww| 日韩极品在线观看| av动漫一区二区| 99国产精品国产精品久久| 国产欧美一区二区精品忘忧草 | 粉嫩av一区二区三区粉嫩| 欧美精品成人一区二区三区四区| 亚洲欧美在线另类| 精品一区二区三区在线视频| 欧美在线色视频| 国产丝袜在线精品| 国产一区二区三区观看| 欧美一级高清片在线观看| 亚洲欧美日韩国产另类专区| 老司机精品视频导航| 欧美欧美欧美欧美首页| 国产精品视频一二三| 久久精品亚洲麻豆av一区二区| 日韩成人av影视| 欧美一三区三区四区免费在线看| 亚洲国产精品久久久男人的天堂| 欧美日韩免费观看一区三区| 偷拍一区二区三区四区| 欧美日本韩国一区二区三区视频| 舔着乳尖日韩一区| 欧美一级国产精品| 国产盗摄视频一区二区三区| 欧美国产精品专区| 色综合久久综合网97色综合| 亚洲国产人成综合网站| 91精品国产综合久久福利| 久久成人精品无人区| 国产欧美精品一区二区色综合| 99久久精品免费| 亚洲第一狼人社区| 精品国产91乱码一区二区三区 | 久久综合av免费| 成人手机电影网| 一区二区三区蜜桃网| 日韩亚洲欧美综合| 国产91露脸合集magnet| 一区二区在线观看av| 69久久99精品久久久久婷婷| 国产另类ts人妖一区二区| 亚洲女女做受ⅹxx高潮| 欧美成人a在线| 色偷偷久久一区二区三区| 男人的天堂亚洲一区| 国产精品欧美经典| 日韩欧美中文一区| 91原创在线视频| 免费观看91视频大全| 国产精品国产a| 777亚洲妇女| 99久久亚洲一区二区三区青草| 日产欧产美韩系列久久99| 亚洲国产精品成人综合| 欧美一区欧美二区| 91麻豆swag| 国产a区久久久| 久久er99热精品一区二区| 亚洲国产另类精品专区| 国产精品美女久久福利网站| 欧美变态tickling挠脚心| 欧美亚洲国产一区二区三区va| 国产成人av电影| 麻豆精品蜜桃视频网站| 亚洲一区二区三区在线播放| 国产精品乱人伦| 久久久亚洲精品一区二区三区| 91精品国产综合久久香蕉麻豆 | 日产欧产美韩系列久久99| 中文字幕在线免费不卡| 国产欧美一区二区三区鸳鸯浴| 日韩欧美一二三| 欧美一区二区三区在线观看视频| 在线观看视频一区二区欧美日韩| 成人av网址在线观看| 国产成人精品免费视频网站| 国产制服丝袜一区| 韩日av一区二区| 国产乱国产乱300精品| 久久aⅴ国产欧美74aaa| 日本成人在线不卡视频| 日韩不卡手机在线v区| 亚洲午夜激情av| 亚洲自拍偷拍av| 亚洲国产精品一区二区尤物区| 中文av一区特黄| 国产欧美日韩中文久久| 亚洲国产电影在线观看| 欧美激情一区二区三区不卡 | 成人av电影观看| aa级大片欧美| 色婷婷激情综合| 欧美视频中文一区二区三区在线观看| 成人黄色小视频在线观看| 99国产精品国产精品毛片| 色播五月激情综合网| 欧美日韩亚洲国产综合| 欧美丰满一区二区免费视频 | 国产成人av电影在线观看| 国产成人亚洲综合a∨婷婷| 成人在线综合网| 色综合久久99| 3d动漫精品啪啪1区2区免费 | 国内精品伊人久久久久av一坑 | 欧美剧情电影在线观看完整版免费励志电影 | 丁香桃色午夜亚洲一区二区三区| 成人激情开心网| 欧美在线三级电影| 精品久久久久久久久久久院品网 | 菠萝蜜视频在线观看一区| 91视视频在线观看入口直接观看www | 精品福利av导航| 中文字幕日韩一区| 视频一区视频二区中文| 国产精品一二三区| 欧美午夜影院一区| 精品久久免费看| 亚洲一区在线播放| 久久99国产精品久久99 | 懂色av中文字幕一区二区三区| 色94色欧美sute亚洲线路一久| 日韩精品一区二区三区三区免费 | 亚洲国产精品人人做人人爽| 精品制服美女丁香| www.66久久| 精品国产成人系列| 亚洲国产欧美在线| www.日韩大片| 亚洲精品在线三区| 午夜国产不卡在线观看视频| 成人少妇影院yyyy| 欧美精品一区男女天堂| 亚欧色一区w666天堂| 色综合久久中文字幕| 日本一区二区视频在线观看| 青青草国产精品97视觉盛宴|