首页 > 解决方案 > 为什么 Python 进度库会打印额外的字符

问题描述

我正在使用 Python进度库向我的程序添加一个基本进度条,我发现它正在打印额外的意外字符。我已经尝试查看源代码和已知问题,但我无法弄清楚发生了什么。

这是我的代码:

from progress.bar import Bar
import time

bar = Bar('Processing', max=10)

for i in range(10):
    time.sleep(1)
    bar.next()

bar.finish()

根据文档,我应该期待一个如下所示的栏:

Processing |#############                   | 5/10

但实际输出如下所示:

[KProcessing |################################| 10/10
[?25h

这是一张图片,所以你可以看到奇怪的字符

为什么要在框中打印“K”和“[?25h”以及奇怪的问号?

“K”和奇怪的问号和“[?25h”在哪里?我该如何摆脱这些?

标签: pythonprogress-bar

解决方案


这些是此 SO 答案中所述的 VT100 或 ANSI 转义码。

本质上,您的终端/外壳无法识别库正在使用的控制代码。尝试使用 unicode 兼容的 shell,您可能会得到预期的结果。


推荐阅读