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

Python進度條tqdm,你值得擁有

開發 后端
之所以了解到了這個,是因為使用了一個依賴tqdm的包,然后好奇就查了一下。對于python中的進度條也是經常使用的,例如包的安裝,一些模型的訓練也會通過進度條的方式體現在模型訓練的進度。總之,使用進度條能夠更加錦上添花,提升使用體驗吧。至于更多tqdm內容可以參考tqdm官網[1]下面就來看看吧。

前言

之所以了解到了這個,是因為使用了一個依賴tqdm的包,然后好奇就查了一下。對于python中的進度條也是經常使用的,例如包的安裝,一些模型的訓練也會通過進度條的方式體現在模型訓練的進度。總之,使用進度條能夠更加錦上添花,提升使用體驗吧。至于更多tqdm內容可以參考tqdm官網[1]下面就來看看吧。 

1 簡單了解

先來看看效果,使用循環顯示一個智能的進度條-只需用tqdm(iterable)包裝任何可迭代就可完成,如下: 

 

Python進度條tqdm你值得擁有

 

 

tqdm運行

 

相關代碼如下: 

  1. import tqdm 
  2. import time 
  3.  
  4.  
  5. for i in tqdm.tqdm(range(1000)): 
  6.     time.sleep(0.1) 

官方也給了一張圖,來看看: 

Python進度條tqdm你值得擁有
run2

看起來還不錯吧,現在我們詳細地了解一下。

2 使用

安裝就不用說了,使用pip install tqdm即可。tqdm主要有以下三種用法。

2.1 基于迭代器的(iterable-based)

使用案例如下,使用tqdm()傳入任何可迭代的參數: 

  1. from tqdm import tqdm 
  2. from time import sleep 
  3.  
  4.  
  5. text = "" 
  6. for char in tqdm(["a""b""c""d"]): 
  7.     sleep(0.25) 
  8.     text = text + char 

tqdm(range(i))的一個特殊優化案例: 

  1. from time import sleep 
  2. from tqdm import trange 
  3.  
  4. for i in trange(100): 
  5.     sleep(0.01) 

這樣就可以不同傳入range(100)這樣的迭代器了,trange()自己去構建。 除此之外,可以用tqdm()在循環外手動控制一個可迭代類型,如下: 

  1. pbar = tqdm(["a""b""c""d"]) 
  2. for char in pbar: 
  3.     sleep(0.25) 
  4.     pbar.set_description("Processing %s" % char

這里還使用了.set_description(),結果如下:

  1. Processing d: 100%|██████████| 4/4 [00:01<00:00,  3.99it/s] 

相關參數容后再介紹。

2.2 手工操作(Manual)

使用with語句手動控制tqdm的更新,可以根據具體任務來更新進度條的進度。 

  1. with tqdm(total=100) as pbar: 
  2.     for i in range(10): 
  3.         sleep(0.1) 
  4.         pbar.update(10) 

當然with這個語句想必大家都知道(想想使用with打開文件就知道了),也可以不使用with進行,則有如下操作: 

  1. pbar = tqdm(total=100) 
  2. for i in range(10): 
  3.     sleep(0.1) 
  4.     pbar.update(10) 
  5. pbar.close() 

那么這個時候,就不要忘了在結束后關閉,或者del tqdm對象了。

2.3 模塊(Module)

也許tqdm的最妙用法是在腳本中或在命令行中。只需在管道之間插入tqdm(或python -m tqdm),即可將所有stdin傳遞到stdout,同時將進度打印到stderr。具體如何操作,我們來看看,下面也是官方給出的例子。 以下示例演示了對當前目錄中所有Python文件中的行數進行計數,其中包括計時信息。(為了能夠在windows系統中使用linux命令,這是使用git打開),也是當前項目路徑。

  1. time find . -name '*.py' -type f -exec cat \{} \; | wc -l 

 

Python進度條tqdm你值得擁有

linux命令補充: time[2],find[3](-exec 使用其后參數操作查找到的文件);wc[4].

使用tqdm命令來試一試:

  1. time find . -name '*.py' -type f -exec cat \{} \; | tqdm | wc -l 

則有: 

Python進度條tqdm你值得擁有

tqdm

注意,也可以指定tqdm的常規參數。如下: 

Python進度條tqdm你值得擁有

就暫時說到這吧,感覺內容有點超綱了,如果對tqdm有興趣的話可以訪問官方文檔深入了解。

3 參數

官方的類初始化代碼如下: 

  1. class tqdm(): 
  2.   ""
  3.   Decorate an iterable object, returning an iterator which acts exactly 
  4.   like the original iterable, but prints a dynamically updating 
  5.   progressbar every time a value is requested. 
  6.   ""
  7.  
  8.   def __init__(self, iterable=None, desc=None, total=None, leave=True
  9.                file=None, ncols=None, mininterval=0.1, 
  10.                maxinterval=10.0, miniters=None, ascii=None, disable=False
  11.                unit='it', unit_scale=False, dynamic_ncols=False
  12.                smoothing=0.3, bar_format=None, initial=0, position=None, 
  13.                postfix=None, unit_divisor=1000): 

官方對各個參數介紹如下: 

  1. Parameters 
  2.         ---------- 
  3.         iterable  : iterable, optional 
  4.             Iterable to decorate with a progressbar. 
  5.             Leave blank to manually manage the updates. 
  6.         desc  : str, optional 
  7.             Prefix for the progressbar. 
  8.         total  : int, optional 
  9.             The number of expected iterations. If unspecified, 
  10.             len(iterable) is used if possible. If float("inf"or as a last 
  11.             resort, only basic progress statistics are displayed 
  12.             (no ETA, no progressbar). 
  13.             If `gui` is True and this parameter needs subsequent updating, 
  14.             specify an initial arbitrary large positive integer
  15.             e.g. int(9e9). 
  16.         leave  : bool, optional 
  17.             If [defaultTrue], keeps all traces of the progressbar 
  18.             upon termination of iteration. 
  19.         file  : `io.TextIOWrapper` or `io.StringIO`, optional 
  20.             Specifies where to output the progress messages 
  21.             (default: sys.stderr). Uses `file.write(str)` and `file.flush()` 
  22.             methods.  For encoding, see `write_bytes`. 
  23.         ncols  : int, optional 
  24.             The width of the entire output message. If specified, 
  25.             dynamically resizes the progressbar to stay within this bound. 
  26.             If unspecified, attempts to use environment width. The 
  27.             fallback is a meter width of 10 and no limit for the counter and 
  28.             statistics. If 0, will not print any meter (only stats). 
  29.         mininterval  : float, optional 
  30.             Minimum progress display update interval [default: 0.1] seconds. 
  31.         maxinterval  : float, optional 
  32.             Maximum progress display update interval [default: 10] seconds. 
  33.             Automatically adjusts `miniters` to correspond to `mininterval` 
  34.             after long display update lag. Only works if `dynamic_miniters` 
  35.             or monitor thread is enabled. 
  36.         miniters  : int, optional 
  37.             Minimum progress display update interval, in iterations. 
  38.             If 0 and `dynamic_miniters`, will automatically adjust to equal 
  39.             `mininterval` (more CPU efficient, good for tight loops). 
  40.             If > 0, will skip display of specified number of iterations. 
  41.             Tweak this and `mininterval` to get very efficient loops. 
  42.             If your progress is erratic with both fast and slow iterations 
  43.             (network, skipping items, etc) you should set miniters=1. 
  44.         ascii  : bool or str, optional 
  45.             If unspecified or False, use unicode (smooth blocks) to fill 
  46.             the meter. The fallback is to use ASCII characters " 123456789#"
  47.         disable  : bool, optional 
  48.             Whether to disable the entire progressbar wrapper 
  49.             [defaultFalse]. If set to None, disable on non-TTY. 
  50.         unit  : str, optional 
  51.             String that will be used to define the unit of each iteration 
  52.             [default: it]. 
  53.         unit_scale  : bool or int or float, optional 
  54.             If 1 or True, the number of iterations will be reduced/scaled 
  55.             automatically and a metric prefix following the 
  56.             International System of Units standard will be added 
  57.             (kilo, mega, etc.) [defaultFalse]. If any other non-zero 
  58.             number, will scale `total` and `n`. 
  59.         dynamic_ncols  : bool, optional 
  60.             If set, constantly alters `ncols` to the environment (allowing 
  61.             for window resizes) [defaultFalse]. 
  62.         smoothing  : float, optional 
  63.             Exponential moving average smoothing factor for speed estimates 
  64.             (ignored in GUI mode). Ranges from 0 (average speed) to 1 
  65.             (current/instantaneous speed) [default: 0.3]. 
  66.         bar_format  : str, optional 
  67.             Specify a custom bar string formatting. May impact performance. 
  68.             [default'{l_bar}{bar}{r_bar}'], where 
  69.             l_bar='{desc}: {percentage:3.0f}%|' and 
  70.             r_bar='| {n_fmt}/{total_fmt} [{elapsed}<{remaining}, ' 
  71.               '{rate_fmt}{postfix}]' 
  72.             Possible vars: l_bar, bar, r_bar, n, n_fmt, total, total_fmt, 
  73.               percentage, rate, rate_fmt, rate_noinv, rate_noinv_fmt, 
  74.               rate_inv, rate_inv_fmt, elapsed, elapsed_s, remaining, 
  75.               remaining_s, desc, postfix, unit. 
  76.             Note that a trailing ": " is automatically removed after {desc
  77.             if the latter is empty. 
  78.         initial  : int, optional 
  79.             The initial counter value. Useful when restarting a progress 
  80.             bar [default: 0]. 
  81.         position  : int, optional 
  82.             Specify the line offset to print this bar (starting from 0) 
  83.             Automatic if unspecified. 
  84.             Useful to manage multiple bars at once (eg, from threads). 
  85.         postfix  : dict or *, optional 
  86.             Specify additional stats to display at the end of the bar. 
  87.             Calls `set_postfix(**postfix)` if possible (dict). 
  88.         unit_divisor  : float, optional 
  89.             [default: 1000], ignored unless `unit_scale` is True
  90.         write_bytes  : bool, optional 
  91.             If (default: None) and `file` is unspecified, 
  92.             bytes will be written in Python 2. If `True` will also write 
  93.             bytes. In all other cases will default to unicode. 
  94.         gui  : bool, optional 
  95.             WARNING: internal parameter - do not use. 
  96.             Use tqdm_gui(...) instead. If set, will attempt to use 
  97.             matplotlib animations for a graphical output [defaultFalse]. 

更多功能則可根據以上參數發揮你的想象力了。

 

責任編輯:未麗燕 來源: 今日頭條
相關推薦

2021-06-15 08:02:27

Python進度條Tqdm

2015-07-31 11:19:43

數字進度條源碼

2024-08-06 14:29:37

2021-01-21 09:45:16

Python字符串代碼

2021-09-06 10:22:47

匿名對象編程

2023-12-27 13:45:00

Python進度條代碼

2011-07-05 15:16:00

QT 進度條

2023-12-29 08:17:26

Python代碼分析Profile

2022-04-04 21:33:48

進度條Python

2022-07-23 21:37:48

Python

2012-01-17 13:58:17

JavaSwing

2023-12-11 17:15:05

應用開發波紋進度條ArkUI

2009-06-06 18:54:02

JSP編程進度條

2024-06-13 08:15:00

2022-02-04 21:33:34

Ajaxjs網站

2020-02-03 12:25:35

Python工具服務器

2020-06-15 14:43:16

Python開發工具

2009-08-17 14:41:47

C#進度條實現

2009-12-25 17:58:12

WPF進度條

2009-08-18 09:49:00

C# listview
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久美女网 | 中文字字幕一区二区三区四区五区 | 国产精品一区二区久久精品爱微奶 | 国产精品一区二区不卡 | 久久亚洲一区二区 | 久久91| 蜜桃av鲁一鲁一鲁一鲁 | 网站国产| 成人日韩av | 久久国产精品一区二区三区 | 欧美2区 | 美女二区 | 亚洲国产成人精品在线 | 日韩欧美中文字幕在线观看 | 成人小视频在线免费观看 | 日韩av免费看 | 亚洲精品乱码久久久久久久久久 | 国产黄色大片在线免费观看 | 中国大陆高清aⅴ毛片 | 国产欧美精品一区 | 国产精品久久久久久久岛一牛影视 | 一区二区三区在线看 | 中文字幕视频网 | 亚洲视频免费在线 | 人人做人人澡人人爽欧美 | 免费在线看黄 | 99riav3国产精品视频 | 久久久精品一区二区三区 | 亚洲 欧美 精品 | 国产伦精品一区二区三区四区视频 | 亚洲欧美成人在线 | 午夜日韩精品 | 国产精品99久久久久久大便 | 欧美一区在线视频 | 日本二区在线观看 | 97av视频| 亚洲精品亚洲人成人网 | 蜜桃视频一区二区三区 | 成人欧美一区二区三区白人 | 亚洲午夜视频 | 久久免费香蕉视频 |