Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to download a file in parts

I'm writing a program that downloads files anywhere up to a 1Gb in size. Right now I'm using the requests package to download files, and although it works (I think it times out sometimes) it is very slow. I've seen some examples multi-part download examples using urllib2 but I'm looking for a way to use urllib3 or requests, if that package has the ability.

like image 502
user1704863 Avatar asked Sep 01 '25 09:09

user1704863


1 Answers

How closely have you looked at requests' documentation?

In the Quickstart documentation the following is described

r = requests.get(url, stream=True)
r.raw.read(amount)

The better way, however, to do this is:

fd = open(filename, 'wb')
r = requests.get(url, stream=True)
for chunk in r.iter_content(amount):
    fd.write(chunk)
fd.close()

(Assuming you are saving the downloaded content to a file.)

like image 178
Ian Stapleton Cordasco Avatar answered Sep 04 '25 07:09

Ian Stapleton Cordasco