成人免费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-09-06 10:22:47

匿名對象編程

2021-01-21 09:45:16

Python字符串代碼

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

2009-06-06 18:54:02

JSP編程進度條

2023-12-11 17:15:05

應用開發波紋進度條ArkUI

2024-06-13 08:15:00

2022-02-04 21:33:34

Ajaxjs網站

2020-06-15 14:43:16

Python開發工具

2020-02-03 12:25:35

Python工具服務器

2021-07-05 09:40:57

工具Node開源

2021-03-18 07:52:42

代碼性能技巧開發

2021-01-07 09:35:49

Pythontqdm進度
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品永久免费视频 | а_天堂中文最新版地址 | 国产精品一区二区在线观看 | 蜜桃av一区二区三区 | 亚洲成人精品在线 | 91传媒在线观看 | 日韩欧美国产一区二区三区 | 国产一级网站 | 亚洲视频www| 成人在线免费观看 | 日韩www视频 | 99精品在线 | 欧美日韩国产在线 | 黄a在线播放| 亚洲毛片在线观看 | 国产三级一区二区三区 | 国产高清久久久 | 亚洲综合成人网 | 给我免费的视频在线观看 | 午夜精品久久久久99蜜 | 久久久九九九九 | 国产欧美精品一区二区三区 | 午夜欧美一区二区三区在线播放 | 成人一区二区视频 | 欧美精品成人一区二区三区四区 | 欧美在线视频不卡 | av成年人网站 | 日本精品久久久久 | 美女毛片免费看 | 色999视频| 亚洲精品一区二区在线观看 | 国产伦精品一区二区三毛 | 欧美激情一区二区三区 | 在线亚洲免费 | www.亚洲| 久久国内精品 | 亚洲精彩视频在线观看 | 国产精品一区二区三区99 | 日日摸夜夜添夜夜添特色大片 | 亚洲区一区二 | 成人精品国产一区二区4080 |