-
-
Save yanqd0/c13ed29e29432e3cf3e7c38467f42f51 to your computer and use it in GitHub Desktop.
| import requests | |
| from tqdm import tqdm | |
| def download(url: str, fname: str, chunk_size=1024): | |
| resp = requests.get(url, stream=True) | |
| total = int(resp.headers.get('content-length', 0)) | |
| with open(fname, 'wb') as file, tqdm( | |
| desc=fname, | |
| total=total, | |
| unit='iB', | |
| unit_scale=True, | |
| unit_divisor=1024, | |
| ) as bar: | |
| for data in resp.iter_content(chunk_size=chunk_size): | |
| size = file.write(data) | |
| bar.update(size) |
Getting no output from this. Has something changed in tqdm since this was written? It's pretty much exactly what I need, and is downloading fine, but no visual updates. I output the total to the console, so I know it got that far. Updated to the latest tqdm and requests as well.
Getting no output from this. Has something changed in tqdm since this was written? It's pretty much exactly what I need, and is downloading fine, but no visual updates. I output the
totalto the console, so I know it got that far. Updated to the latesttqdmandrequestsas well.
If there is no content-length in the response, then no output displayed.
Thanks very much. It is a great solution.
Thanks for helping me.
Thanks !
see my fork for additional options:
- try auto detect file name if left empty
- option to overwrite if file already existed
- chunk_size in MiB
total = int(resp.headers.get('content-length', 0))V
total = int(resp.headers.get('content-length', 0)) or float('inf')to support the case when the content length is not specified
This is the best solution for downloading large files.