Last active
February 23, 2016 20:09
-
-
Save pfultz2/a2305ba8ade3c383adcd to your computer and use it in GitHub Desktop.
Download file in python
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import urllib | |
from tqdm import tqdm | |
def my_hook(t): | |
""" | |
Wraps tqdm instance. Don't forget to close() or __exit__() | |
the tqdm instance once you're done with it (easiest using `with` syntax). | |
Example | |
------- | |
>>> with tqdm(...) as t: | |
... reporthook = my_hook(t) | |
... urllib.urlretrieve(..., reporthook=reporthook) | |
""" | |
last_b = [0] | |
def inner(b=1, bsize=1, tsize=None): | |
""" | |
b : int, optional | |
Number of blocks just transferred [default: 1]. | |
bsize : int, optional | |
Size of each block (in tqdm units) [default: 1]. | |
tsize : int, optional | |
Total size (in tqdm units). If [default: None] remains unchanged. | |
""" | |
if tsize is not None: | |
t.total = tsize | |
t.update((b - last_b[0]) * bsize) | |
last_b[0] = b | |
return inner | |
eg_link = 'http://www.doc.ic.ac.uk/~cod11/matryoshka.zip' | |
with tqdm(unit='B', unit_scale=True, leave=True, miniters=1, | |
desc=eg_link.split('/')[-1]) as t: # all optional kwargs | |
urllib.urlretrieve(eg_link, filename='/dev/null', | |
reporthook=my_hook(t), data=None) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment