Python HTTP下載文件并顯示下載進(jìn)度條功能的實(shí)現(xiàn)
下面的Python腳本中利用request下載文件并寫入到文件系統(tǒng),利用progressbar模塊顯示下載進(jìn)度條。
其中利用request模塊下載文件可以直接下載,不需要使用open方法,例如:
import urllib import requests.packages.urllib3 requests.packages.urllib3.disable_warnings() url = "https://raw.githubusercontent.com/racaljk/hosts/master/hosts" urllib.urlretrieve(url, filename="hosts")
下面的例子是題目中完整的例子,其中注釋的部分是進(jìn)度條的另一種寫法,顯示當(dāng)前處理過的行數(shù)。
#!/usr/bin/python
# encoding: utf-8
# -*- coding: utf8 -*-
"""
Created by PyCharm.
File: LinuxBashShellScriptForOps:download_file2.py
User: Guodong
Create Date: 2016/9/14
Create Time: 9:40
"""
import requests
import progressbar
import requests.packages.urllib3
requests.packages.urllib3.disable_warnings()
url = "https://raw.githubusercontent.com/racaljk/hosts/master/hosts"
response = requests.request("GET", url, stream=True, data=None, headers=None)
save_path = "/tmp/hosts"
total_length = int(response.headers.get("Content-Length"))
with open(save_path, 'wb') as f:
# widgets = ['Processed: ', progressbar.Counter(), ' lines (', progressbar.Timer(), ')']
# pbar = progressbar.ProgressBar(widgets=widgets)
# for chunk in pbar((i for i in response.iter_content(chunk_size=1))):
# if chunk:
# f.write(chunk)
# f.flush()
widgets = ['Progress: ', progressbar.Percentage(), ' ',
progressbar.Bar(marker='#', left='[', right=']'),
' ', progressbar.ETA(), ' ', progressbar.FileTransferSpeed()]
pbar = progressbar.ProgressBar(widgets=widgets, maxval=total_length).start()
for chunk in response.iter_content(chunk_size=1):
if chunk:
f.write(chunk)
f.flush()
pbar.update(len(chunk) + 1)
pbar.finish()
運(yùn)行結(jié)果:

到此這篇關(guān)于Python HTTP下載文件并顯示下載進(jìn)度條功能的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)python下載文件顯示進(jìn)度條內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python2.7環(huán)境Flask框架安裝簡明教程【已測試】
這篇文章主要介紹了Python2.7環(huán)境Flask框架安裝方法,結(jié)合實(shí)例形式詳細(xì)分析了Python2.7環(huán)境下安裝Flask框架遇到的問題與相關(guān)解決方法、注意事項(xiàng),并給出了一個基本的測試示例,需要的朋友可以參考下2018-07-07
Jupyter Notebook調(diào)用指定的虛擬環(huán)境的實(shí)現(xiàn)示例
本文主要介紹了Jupyter Notebook調(diào)用指定的虛擬環(huán)境的實(shí)現(xiàn)示例,,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07
Python爬蟲程序架構(gòu)和運(yùn)行流程原理解析
這篇文章主要介紹了Python爬蟲程序架構(gòu)和運(yùn)行流程原理解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03
詳談pandas中agg函數(shù)和apply函數(shù)的區(qū)別
下面小編就為大家分享一篇詳談pandas中agg函數(shù)和apply函數(shù)的區(qū)別,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-04-04
Python基于network模塊制作電影人物關(guān)系圖
這篇文章主要介紹了Python基于network模塊制作電影人物關(guān)系圖,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06
Python實(shí)現(xiàn)字符串反轉(zhuǎn)的常用方法分析【4種方法】
這篇文章主要介紹了Python實(shí)現(xiàn)字符串反轉(zhuǎn)的常用方法,結(jié)合具體實(shí)例形式分析了4種常用的Python字符串反轉(zhuǎn)操作技巧,需要的朋友可以參考下2017-09-09

