Sto usando il modulo richieste Python 2.7 per scaricare un file binario usando il seguente codice, come rendere questo codice "auto-resume" il download da file parzialmente scaricato.Come riprendere il download del file in Python?
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()
io preferirei usare solo requests
modulo per raggiungere questo obiettivo, se possibile.
Si sarebbe anche bisogno di cambiare la modalità di file da 'wb' a 'ab' (per aggiungere, altrimenti si sovrascriverà la parte già salvata). –
Per riferimento futuro, sarebbe il resume_byte_pos, essere la dimensione corrente del file, o la dimensione corrente del file meno uno? – Klik
@Klik sicuramente non una dimensione di file corrente meno uno - se hai scaricato 0 byte allora non vuoi iniziare da -1 :) L'indicizzazione avvia il modulo 0, quindi devi inviare la dimensione del file corrente come byte iniziale. –