12

喜欢tqdm进度条,但是当我在 jenkins 上使用它时,我不断得到一堆奇怪的工件和标准输出中的过多膨胀(特别是,无处不在[A)。tqdm 中是否有一个秘密模式可以使它与 jenkins 很好地工作?无缝检测像 jenkins 这样的非交互式 shell 的奖励积分。这是我的典型输出:

label: 0it [00:00, ?it/s][A
[A
 16%|#6        | 5378/33302 [36:28<2:30:49,  3.09it/s]
[A
 16%|#6        | 5379/33302 [36:29<2:36:46,  2.97it/s]
[A
...
4

1 回答 1

3

我会选择类似的东西:

from tqdm import tqdm
import os

# try this
for i in tqdm(..., disable=None):
    ...

# alternative if the above doesn't work
for i in tqdm(..., disable=os.environ.get("JENKINS_HOME")):
    ...

# or even...
for i in tqdm(..., disable=os.environ.get("JENKINS_HOME") is not None):
    ...

请注意,disable=None应该自动检查诸如sys.stdout.isatty().

不幸的是,Jenkins 不支持CR( \r),这是tqdm.

来自https://tqdm.github.io/

tqdm不需要任何依赖项(甚至不需要curses!),只需要 Python 和支持回车\r和换行\n控制字符的环境。

于 2019-01-25T23:02:34.070 回答