Python学习笔记——requests分段下载文件

一、获取文件大小

import requests

# mp4文件链接
url = 'https://vd4.bdstatic.com/mda-mgsjfvpjjte5hpqk/sc/cae_h264_clips/1627394487294196654/mda-mgsjfvpjjte5hpqk.mp4'

r = requests.get(url,stream=True)#stream:如果`False`,将立即下载响应内容。
size = r.headers.get('Content-Length')#返回内容有多少字节
print(size)

二、每次接受指定大小的消息

import requests

# mp4文件链接
url = 'https://vd4.bdstatic.com/mda-mgsjfvpjjte5hpqk/sc/cae_h264_clips/1627394487294196654/mda-mgsjfvpjjte5hpqk.mp4'

r = requests.get(url,stream=True)#stream:如果`False`,将立即下载响应内容。
size = r.headers.get('Content-Length')#返回内容有多少字节
print(size)

file = open('1.mp4','wb')
for i in r.iter_content(chunk_size=1024):#将所有的字节以 1024字节 分开,每次循环下载1kb(1024字节)
    file.write(i)
print('循环结束,下载完成')

三、完善下载显示信息

1.显示下载内容百分比

import requests

# mp4文件链接
url = 'https://vd4.bdstatic.com/mda-mgsjfvpjjte5hpqk/sc/cae_h264_clips/1627394487294196654/mda-mgsjfvpjjte5hpqk.mp4'

r = requests.get(url,stream=True)#stream:如果`False`,将立即下载响应内容。
size = r.headers.get('Content-Length')#返回内容有多少字节
print(size)

file = open('1.mp4','wb')
j = 1#
for i in r.iter_content(chunk_size=1024):#将所有的字节以 1024字节 分开,每次循环下载1kb(1024字节)
    file.write(i)
    print(j*1024,'/',size)#下载百分比格式
    j += 1

print('循环结束,下载完成')

2.设置以MB为单位显示

1MB = 1*1024KB = 1*1024*1024 B(字节) 

import requests

# mp4文件链接
url = 'https://vd4.bdstatic.com/mda-mgsjfvpjjte5hpqk/sc/cae_h264_clips/1627394487294196654/mda-mgsjfvpjjte5hpqk.mp4'

r = requests.get(url,stream=True)#stream:如果`False`,将立即下载响应内容。
size = r.headers.get('Content-Length')#返回内容有多少字节
print(size)

file = open('1.mp4','wb')
j = 1#
b = round(int(size)/(1024*1024),3)#总文件大小 字节转成MB单位,并保留3位小数

for i in r.iter_content(chunk_size=1024):#将所有的字节以 1024字节 分开,每次循环下载1kb(1024字节)
    file.write(i)
    a = round(j*1024/(1024*1024),3)#已下载文件大小 字节转成MB单位,并保留3位小数
    print(a,'/',b,'MB')#下载百分比格式
    j += 1

print('=========下载完成=========')

 3.设置在同一行自动更改百分比

  

import requests

# mp4文件链接
url = 'https://vd4.bdstatic.com/mda-mgsjfvpjjte5hpqk/sc/cae_h264_clips/1627394487294196654/mda-mgsjfvpjjte5hpqk.mp4'

r = requests.get(url,stream=True)#stream:如果`False`,将立即下载响应内容。
size = r.headers.get('Content-Length')#返回内容有多少字节
print(size)

file = open('1.mp4','wb')
j = 1#
b = round(int(size)/(1024*1024),3)#总文件大小 字节转成MB单位,并保留3位小数

for i in r.iter_content(chunk_size=1024):#将所有的字节以 1024字节 分开,每次循环下载1kb(1024字节)
    file.write(i)
    print('\b'*20,end='')
    a = round(j*1024/(1024*1024),3)#已下载文件大小 字节转成MB单位,并保留3位小数
    print(a,'/',b,'MB',end='')#下载百分比格式
    j += 1

print('=========下载完成=========')

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值