ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

requests 使用 stream 流形式下载文件

2021-09-15 02:02:16  阅读:24  来源: 互联网

标签:1024 stream content file time requests 下载 size


requests stream=True

import time
import requests

download_url = ''
start_time = time.time()
file_name = 'video.mp4'  # 文件名称

# 以流形式下载文件
result = requests.get(download_url, stream=True)
size = 0  # 已下载文件的大小
chunk_size = 1024 * 1024  # 每次下载数据的大小:单位字节 1024:1KB 1024*1024:1MB
content_size = int(result.headers["content-length"])  # 文件总大小:单位字节
try:
    if result.status_code == 200:
        with open(file_name, 'wb') as video_file:
            # 当把get函数的stream参数设置成True时,它不会立即开始下载
            # 使用iter_content或iter_lines遍历内容或访问内容属性时才开始下
            # 每次下载chunk_size大小的内容写入文件
            for data in result.iter_content(chunk_size=chunk_size):
                video_file.write(data)
                size += len(data)  # 已下载文件的大小
                # 已完成的百分比
                percentage = size / content_size
                # 打印进度条
                print('\r',
                      f'《 {file_name} 》:%.2fMB\t' % (content_size / 1024 / 1024),
                      '下载进度:[%-50s%.2f%%]耗时:%.1fs' % (
                          '>' * int(50 * percentage), percentage * 100, time.time() - start_time),
                      end='')
except Exception as e:
    print('下载出错', e)




标签:1024,stream,content,file,time,requests,下载,size
来源: https://www.cnblogs.com/jiyu-hlzy/p/15249689.html

专注分享技术,共同学习,共同进步。侵权联系[admin#icode9.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有