我正在使用 Python 2.7 的 requests 模块下载二进制文件,以下是代码,请问如何使此代码能够从部分下载的文件自动恢复下载。
r = requests.get(self.fileurl, stream=True, verify=False, allow_redirects=True)
if r.status_code == 200:
CHUNK_SIZE = 8192
bytes_read = 0
with open(FileSave, 'wb') as f:
itrcount=1
for chunk in r.iter_content(CHUNK_SIZE):
itrcount=itrcount+1
f.write(chunk)
bytes_read += len(chunk)
total_per = 100 * float(bytes_read)/float(long(audioSize)+long(videoSize))
self.progress_updates.emit('%d\n%s' % (total_per, 'Download Progress : ' + self.size_human(itrcount*CHUNK_SIZE) + '/' + Total_Size))
r.close()
如果可能的话,我更喜欢只使用requests
模块来实现这个。
ab
打开文件,则可以将f.tell()
用作resume_byte_pos
。 [2] 如果发送了Range: bytes =
,则可能会响应不同的标头,请注意(在我的情况下,如果我发送此内容,则会缺少Content-Length
,因此我需要解析Content-Range
以用于进度条使用的总长度)。 - 林果皞