繁体   English   中英

Python:添加进度条以供下载

[英]Python:Adding a progress bar for download

这是迄今为止最好的

我已经看到了许多关于stackoverflow的问题,但是没有一个答案给出了一种简单而优雅的方法。

link = "http://download.thinkbroadband.com/10MB.zip"
file_name = "test"
with open(file_name, "wb") as f:
        print('Downloading: {}'.format(file_name))
        response = requests.get(link, stream=True)
        total_length = response.headers.get('content-length')

        if total_length is None:
            f.write(response.content)
        else:
            dl = 0
            total_length = int(total_length)
            for data in response.iter_content(chunk_size=4096):
                dl += len(data)
                f.write(data)
                done = int(50 * dl / total_length)
                sys.stdout.write("\r[%s%s]" % ('=' * done, ' ' * (50-done)))
                sys.stdout.flush()

下载文件后能否获得更多详细信息? 先前的所有问题都没有一个很好的简单答案。

为什么要重新发明轮子? 使用tqdm 按照链接并按照说明导入tqdm并为任何迭代添加进度栏。 例如:

from tqdm import tqdm
...
for data in tqdm(response.iter_content(chunk_size=4096)):
    # additional logic here
...

阅读提供的pypi链接中的示例,以将其他信息添加到进度栏。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM