清除显示的文本右侧的行progressbar.FormatCustomText格式(Python)

2024-10-02 08:25:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在将progressbar2与FormatCustomText一起使用。文本是参数化的(例如“%s”),要显示的字符串的宽度不同。你知道吗

假设在第一次迭代中,被替换的文本是“AA”。在第二次迭代中,文本是“B”

progressbar在第二次迭代中显示BA而不是B

有没有办法把光标右边的东西都清除到B后面的那一行的末尾?通常,这是通过control-K(chr(11))完成的。你知道吗

不幸的是,将chr(11)添加到FormatCustomText的字符串末尾会导致每次迭代都输出换行符。你知道吗

还有其他想法吗?你知道吗


Tags: 字符串文本参数宽度controlaa末尾光标
2条回答

github上有一个better answer

在末尾打印“\033[K”

progressbar.ProgressBar(widgets=[format_custom_text, "\033[K"])

理想情况下,要替换的文本应具有基于终端宽度百分比的最大长度。我找到了一个方法来获得宽度,但可能有更好的方法!(How to get Linux console window width in Python

这在python3+中起作用:

import shutil shutil.get_terminal_size((80, 20)) # Provide default values

相关问题 更多 >

    热门问题