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