This is an alternative answer for a question on stackoverflow:
http://stackoverflow.com/a/22776/286994
I modified the answer a bit, using .format instead of % string formatting and sys.stdout.write(), and posted it on gist github: https://gist.github.com/3176958
I'm using this solution for the kernel mainline ppa downloader: https://github.com/medigeek/kmp-downloader
http://stackoverflow.com/a/22776/286994
I modified the answer a bit, using .format instead of % string formatting and sys.stdout.write(), and posted it on gist github: https://gist.github.com/3176958
#!/usr/bin/python
# Improve http://stackoverflow.com/a/22776/286994
# (using .format() instead of % string formatting)
import sys
import urllib2
file_name = url.split('/')[-1]
u = urllib2.urlopen(url)
f = open(file_name, 'wb')
meta = u.info()
file_size = int(meta.getheaders("Content-Length")[0])
print("Downloading: {0} Bytes: {1}".format(url, file_size))
file_size_dl = 0
block_sz = 8192
while True:
buffer = u.read(block_sz)
if not buffer:
break
file_size_dl += len(buffer)
f.write(buffer)
p = float(file_size_dl) / file_size
status = r"{0} [{1:.2%}]".format(file_size_dl, p)
status = status + chr(8)*(len(status)+1)
sys.stdout.write(status)
f.close()
I'm using this solution for the kernel mainline ppa downloader: https://github.com/medigeek/kmp-downloader
4 comments:
I tries this but for some reason it takes an enormous amount of time to download. Is there a way to make it download faster?
Nope, sorry. It's just a progress bar script, to show the percentage % you got of the file you're downloading.
Can you please explain the code?
Increasing the block_sz variable will increase the download speed.
Post a Comment