resume_header = {'Range':f'bytes={path('filename.zip').stat().st_size}-'} r = requests.get(url,stream=True, headers=resume_header) with open ('filename.zip','ab') as f: # keep 'ab' in mind for chunk in r.iter_content(chunk-size=1024): f.write(chunk)