import requests from tqdm import tqdm from logging import getLogger def download_file(url, filename): response = requests.get(url, stream=True) total_size = int(response.headers['content-length']) with open(filename, "wb") as f, tqdm( desc=filename, total=total_size, unit='iB', unit_scale=True, unit_divisor=1024, ) as pbar: for data in response.iter_content(chunk_size=1024): size = f.write(data) pbar.update(size)