python - 为什么 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”在哪里?我该如何摆脱这些?
解决方案
这些是此 SO 答案中所述的 VT100 或 ANSI 转义码。
本质上,您的终端/外壳无法识别库正在使用的控制代码。尝试使用 unicode 兼容的 shell,您可能会得到预期的结果。
推荐阅读
- python - 删除列表中括号中的 [ ] 和逗号
- r - R - 将数字年份转换为日期格式 - 1990 到 01/01/1990
- php - PHP - 从父字符串中删除以特定字符开头和结尾的子字符串
- bash - 如何使用 /bin 可执行文件创建/编译自定义 Bash 运行时 Lambda 层?
- python - python计数来自csv pandas的行
- javascript - JS - 从对象中提取数组属性
- javascript - 从字符串执行函数,例如“mystring”.truncate(5)
- node.js - 如何为redis请求设置节点超时
- javascript - 在 Heroku 中部署后 CSS 和 JS 无法正常工作
- java - 用自定义关键字替换java命令?