乙個簡單的python3 實現進度條

2022-08-30 07:36:06 字數 1600 閱讀 6043

說幹就幹,但是發現只是用print函式列印會不斷的換行,這不算時乙個進度條應有的style,在和度娘進行千百次交流後突然發現了可以用sys.stdout.write()來實現,

所以誕生了下面這個實現進度條的**!

1

#!/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")

view code

進度條樣式如下:

本程式呼叫了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....