說幹就幹,但是發現只是用print函式列印會不斷的換行,這不算時乙個進度條應有的style,在和度娘進行千百次交流後突然發現了可以用sys.stdout.write()來實現,
所以誕生了下面這個實現進度條的**!
1view code#!/usr/bin/env/python2#
_*_ coding:utf-8 _*_3#
@time : 2018/7/13 1:084#
@author : jingzeng mo5#
@project: ftp_program67
import
sys8
import
math910
11def
progress_bar(portion, total):
12"""
13total 總資料大小,portion 已經傳送的資料大小
14:param portion: 已經接收的資料量
15:param total: 總資料量
16:return: 接收資料完成,返回true
17"""
18 part = total / 50 #
1%資料的大小
19 count = math.ceil(portion /part)
20 sys.stdout.write('\r'
)21 sys.stdout.write(('
[%-50s]%.2f%%
' % (('
>
' * count), portion / total * 100)))
22sys.stdout.flush()
2324
if portion >=total:
25 sys.stdout.write('\n'
)26return
true
272829#
呼叫方式
30 portion =0
31 total = 254820000
32while
true:
33 portion += 1024
34 sum =progress_bar(portion, total)
35if
sum:
36break
37print("
ok")
進度條樣式如下:
本程式呼叫了math()中的ceil()函式來實現向上取整,用與計算 「 > " 的個數,通過 sys.stdout.write("\r")實現了將指標重置到開頭,最後程式結束時,列印乙個 「 \n」,
實現換行的效果!
呼叫時,需要兩個引數,乙個是已經接收的資料量(portion)和 總的檔案大小(total),通過累計傳輸的資料量和總資料量的比值實現了 顯示百分比 的計算。
所以呼叫時需注意:
1. portion 是不斷的累加的後的資料,而不是每次傳輸的資料量
2. 資料傳輸完畢後會返回乙個值:true 並且換行
需要呼叫的朋友需要注意啦!
第一次發部落格,若有什麼好的建議,請不吝賜教!謝謝!!!
python3實現windows下同名程序監控
公司老版的svn伺服器的svn服務經常意外關閉,需要寫個簡單的監控指令碼監控一下 首先多個svn服務使用不同的埠,使用wmic命令檢視所有svn程序占用的埠以此來判斷目標服務是否存活,wimc命令如下 wmic process where caption svn.exe get commandlin...
用Python3寫乙個簡單的爬小說的爬蟲(上)
import requests import re url 模擬瀏覽器傳送http請求 response requests.get url 網頁原始碼 html response.text 0 取列表下第0個元素.eg title的輸出結果為 鬥神狂飆無彈窗 鬥神狂飆最新章節列表 鬥神狂飆5200 ...
用Python3寫乙個簡單的爬小說的爬蟲(下)
import requests import re from bs4 import beautifulsoup 獲取整個頁面,筆趣閣某本 的 url response requests.get url html response.text 清洗資料 title re.findall html,re....