成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

幾行代碼就能實現漂亮進度條,太贊了!

開發 后端
作為程序員,我們經常會遇到比較耗時的操作,這個時候我們大多數人會無助地等待程序執行完成,有些人會趁機摸一下魚,以便渡過這個無聊看起來又有點未知的時間,我就是這樣做的。

[[438028]]

本文轉載自微信公眾號「Python技術」,作者派森醬。轉載本文請聯系Python技術公眾號。

作為程序員,我們經常會遇到比較耗時的操作,這個時候我們大多數人會無助地等待程序執行完成,有些人會趁機摸一下魚,以便渡過這個無聊看起來又有點未知的時間,我就是這樣做的。

但是,我們也可以選擇另一種方式——用一個炫酷的進度條,來觀察處理進度,也可以及時了解程序運行的情況,做到心中有數。

今天就給大家介紹 Python 的一個庫—— tqdm ,它就能非常完美的支持和解決這些問題,可以實時輸出處理進度而且占用的CPU資源非常少,支持windows、Linux、mac等系統,支持循環處理、多進程、遞歸處理、還可以結合linux的命令來查看處理情況,等進度展示。

安裝

我們常見的安裝方式是直接 pip 安裝:

  1. pip install tqdm 

但是我用這種方式安裝的時候報錯:

看報錯的意思是這個 pypi.org 不是可信網站,于是我加上了:

  1. pip install tqdm --trusted-host pypi.org 

結果還是這個報錯。

這有點無語了。我接著嘗試使用豆瓣的源來進行安裝:

  1. pip install -i https://pypi.douban.com/simple tqdm 

還是一樣的報錯。

但是我瀏覽器訪問這個網站沒問題:https://pypi.org/project/tqdm/

既然這樣,我就把文件下載下來再安裝吧。

下載下來之后,我將 whl 文件放在我的項目目錄,然后使用命令行安裝:

  1. pip install --trusted-host pypi.org tqdm-4.62.3-py2.py3-none-any.whl 

這回安裝沒報錯。我再用命令檢查一下安裝是否成功:

  1. pip show tqdm 

命令行成功顯示信息:

  1. Name: tqdm 
  2. Version: 4.62.3 
  3. Summary: Fast, Extensible Progress Meter 
  4. Home-page: https://tqdm.github.io 
  5. Author: None 
  6. Author-email: None 
  7. License: MPLv2.0, MIT Licences 
  8. Location: c:\pworkspace\mypy\venv\lib\site-packages 
  9. Requires: colorama 
  10. Required-by

折騰了半天,終于安裝成功了!

使用實例

本文的示例都是在 jupyter notebook 環境下運行的,不同環境運行的效果會有差別。

我們進入 tqdm 的源碼,可以找到 __init__ 方法:

  1. def __init__(self, iterable=None, desc=None, total=None, leave=True, file=None, 
  2.              ncols=None, mininterval=0.1, maxinterval=10.0, miniters=None, 
  3.              ascii=None, disable=False, unit='it', unit_scale=False
  4.              dynamic_ncols=False, smoothing=0.3, bar_format=None, initial=0, 
  5.              position=None, postfix=None, unit_divisor=1000, write_bytes=None, 
  6.              lock_args=None, nrows=None, colour=None, delay=0, gui=False
  7.              **kwargs): 

從中我們可以看到 tqdm 支持很多參數,下面列一些常見的參數:

  • iterable:可迭代的對象,在手動更新時不需要進行設置。
  • desc:字符串,左邊進度條描述文字。
  • total:總的項目數。
  • leave:布爾值,迭代完成后是否保留進度條。
  • file:輸出指向位置,默認是終端, 一般不需要設置。
  • ncols:調整進度條寬度,默認是根據環境自動調節長度,如果設置為0,就沒有進度條,只有輸出的信息。
  • unit:描述處理項目的文字,默認是'it',例如: 100 it/s,處理照片的話設置為'img' ,則為 100 img/s。
  • unit_scale:自動根據國際標準進行項目處理速度單位的換算,例如 100000 it/s >> 100k it/s。

基于可迭代對象使用

直接將可迭代對象傳入作為參數,我們來看一下例子:

  1. from tqdm import tqdm 
  2. from time import sleep 
  3.  
  4. for char in tqdm(['h''e''l''l''o']): 
  5.     sleep(0.25) 
  6.  
  7. for i in tqdm(range(100)): 
  8.     sleep(0.05) 

實現的進度條效果如下:

這里面的 tqdm(range()) 我們也可以用 tqdm 提供的 trange() 來代替,可以簡化代碼。

  1. from tqdm.notebook import trange 
  2.  
  3. for i in trange(100): 
  4.     sleep(0.05) 

實現的進度條效果如下:

我們還可以為進度條添加描述:

  1. pbar = tqdm(range(5)) 
  2. for char in pbar: 
  3.     pbar.set_description("Progress %d" %char
  4.     sleep(1) 

實現的進度條效果如下:

接下來,我要改變一下進度條的顏色:

手動控制進度條

我們可以使用 with 語句來手動控制進度條。

  1. with tqdm(total=100) as pbar: 
  2.     for i in range(1, 5): 
  3.         sleep(1) 
  4.         # 更新進度 
  5.         pbar.update(10*i) 

這里我設置進度條的更新的間隔,設置總數為 total=100,然后分四次,使得進度條按 10%,20%,30%,40%的間隔來更新。

實現的進度條效果如下:

接下來, 我要改變一下進度條的顏色:

  1. with tqdm(total=100, colour='yellow'as pbar: 
  2.     for i in range(1, 5): 
  3.         sleep(1) 
  4.         # 更新進度 
  5.         pbar.update(10*i) 

我把進度條改為了黃色。

接下來,我們來個嵌套進度條玩玩。

  1. for i in trange(3, desc='outer loop'): 
  2.     for i in trange(100, desc='inner loop', leave=False): 
  3.         sleep(0.01) 

這里我用兩層 for 循環實現了嵌套,并且將內層的 參數 leave 設置為 False ,意思是內層的進度條每執行一次都會消失。

我們來看看最終運行的效果:

總結

這個進度條庫的使用方法是不是很簡單,幾行代碼就能為我們的程序增色不少。心動不如行動,趕快用起來吧!

 

責任編輯:武曉燕 來源: Python技術
相關推薦

2021-12-15 10:01:06

Python進度條開發

2024-08-06 14:29:37

2020-09-26 21:41:30

進度條Python代碼

2015-07-31 11:19:43

數字進度條源碼

2023-12-11 17:15:05

應用開發波紋進度條ArkUI

2024-06-13 08:15:00

2009-08-17 14:41:47

C#進度條實現

2009-08-17 15:48:47

C# WinForm進

2020-04-07 09:43:17

vue.js進度組件開發

2009-07-21 14:49:55

XmlHttpRequ文件上傳進度條

2023-11-30 11:38:29

CSS網頁進度條

2011-07-05 15:16:00

QT 進度條

2024-07-25 08:55:47

進度條水缸進度動畫效果

2022-08-02 11:24:22

菜鳥Python網站自動簽到

2009-11-24 15:23:50

PHP文件上傳進度條

2012-07-13 13:52:54

Canvas

2009-08-17 17:15:48

C# 進度條效果

2009-08-17 14:36:15

C#進度條實現

2012-01-17 13:58:17

JavaSwing

2009-06-06 18:54:02

JSP編程進度條
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品日产欧美久久久久 | 亚洲视频一区二区三区 | 国产精品自产拍在线观看蜜 | 亚洲欧美日韩系列 | 特黄视频 | 中文字幕成人av | 久久九 | 免费在线观看成年人视频 | 91传媒在线观看 | 99精品在线免费观看 | aa级毛片毛片免费观看久 | 在线播放国产一区二区三区 | 亚洲一区二区三区在线视频 | 亚洲免费在线视频 | 国产精品99精品久久免费 | 欧美日韩专区 | 精品欧美乱码久久久久久1区2区 | 亚洲欧美激情视频 | 91看片在线 | 亚洲高清在线视频 | 精精国产xxxx视频在线野外 | 欧美 日韩 国产 成人 在线 91 | 久久精品国产99国产 | 亚洲精品久久久 | 日韩中文字幕高清 | 国产精品国产成人国产三级 | 91欧美激情一区二区三区成人 | 亚洲综合精品 | 日韩 欧美 二区 | 欧洲成人 | 狠狠躁躁夜夜躁波多野结依 | 国产高清在线观看 | 成人影音 | 中文字幕一区二区三区精彩视频 | 伊人二区| 日本综合在线观看 | 欧美久久久 | 久久一级免费视频 | 欧美日韩在线一区 | 国产区精品视频 | 99久久成人 |