Skip to content

Instantly share code, notes, and snippets.

@medigeek
Created July 25, 2012 16:03
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save medigeek/3176958 to your computer and use it in GitHub Desktop.
Save medigeek/3176958 to your computer and use it in GitHub Desktop.
Improve http://stackoverflow.com/a/22776/286994 (using .format() instead of % string formatting)
#!/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()
@bobelev
Copy link

bobelev commented Apr 17, 2014

What 26th line is about?

@maddisoj
Copy link

maddisoj commented Dec 4, 2014

@bobelev It appends a backspace character to the string for each letter in the status. Meaning the next output will be displayed over it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment