天天看点

python程序分块_怎么用python实现文件的分块下载

展开全部

要求:服务器使用HTTP协议提供下载32313133353236313431303231363533e59b9ee7ad9431333431363631

服务器支持Range请求头

注意:必须满足以上两点要求,否则下面的代码无效

import os

import sys

import requests

if __name__ == '__main__':

assert len(sys.argv) > 1, '未提供参数,终止'

if argv[1] == '0':

start_pos = 0

end_pos = 2**30-1

filename = '00.dat'

elif argv[1] == '1':

start_pos = 2**30

end_pos = ''

filename = '01.dat'

else:

raise ValueError('参数无效:%s,终止' % argv[1])

headers = {

'Range': 'bytes=%s-%s' % (start_pos, end_pos)

}

response = requets.get('下载地址', headers=headers, stream=True)

with open(filename, 'wb') as dat:

chunk_size = 1024

for chunk in response.iter_content(chunk_size):

dat.write(chunk)

print('%s下载完成' % filename)

使用python 脚本名.py 0下载第一部分为00.dat文件,使用python 脚本名.py 1下载第二部分为01.dat文件。