9

tqdm在 Python 3.6(Anaconda 3、Windows 10 x64、PyCharm IDE)中使用一个包(v4.19.5)进行循环,迭代次数超过 200K。它过于频繁地打印状态栏,因此我之前的历史记录在控制台中消失了。

有没有办法限制状态栏更新的频率?我似乎无法在网上或tqdm 网站上找到此解决方案。

目前,我的状态栏是这样打印的。理想情况下,我想设置百分比变化的上限。例如,更新频率不要超过每 1% 的更改/进度一次。

在此处输入图像描述

4

3 回答 3

15

您可以使用我从源代码 https://github.com/tqdm/tqdm/blob/master/tqdm/_tqdm.py获得的miniters参数

tqdm.tqdm(iterable, miniters=int(223265/100))
于 2018-05-17T17:20:53.473 回答
5

接受的答案和引用的公共 API

tqdm.tqdm(iterable, miniters=int(223265/100))

是正确的,但代码位置已更改为此处` https://github.com/tqdm/tqdm/blob/master/tqdm/std.py#L873-L880

下面是miniters选项的说明:

miniters  : int or float, optional
    Minimum progress display update interval, in iterations.
    If 0 and `dynamic_miniters`, will automatically adjust to equal
    `mininterval` (more CPU efficient, good for tight loops).
    If > 0, will skip display of specified number of iterations.
    Tweak this and `mininterval` to get very efficient loops.
    If your progress is erratic with both fast and slow iterations
    (network, skipping items, etc) you should set miniters=1.
于 2020-12-07T04:57:15.133 回答
1

mininterval使用定义更新之间最小时间间隔的选项很方便。例如,要更新每次n_seconds使用:

tqdm(iterable, mininterval=n_seconds)
于 2022-01-26T02:02:27.830 回答