def download(url, local, **kwargs):
if not local:
raise ValueError('local filepath is empty')
try:
if not os.path.exists(os.path.dirname(local)):
os.makedirs(os.path.dirname(local))
res = Request(url, **kwargs)
read_size = 0
real_size = int(res.header['content-length'])
with open(local, 'wb') as f:
while True:
block = res.response.read(1024*8)
if not block:
break
f.write(block)
read_size += len(block)
if read_size < real_size:
raise ContentTooShortError(
'retrieval incomplete: got only {} out of {} bytes'.formate(read_size, real_size),
None
)
except Exception as e:
raise e
评论列表
文章目录