我正在将Progressbar2与FormatCustomText一起使用。参数化了文本(例如“%s”),并且要显示的字符串的宽度也有所不同。
比方说,在第一次迭代中,替换文字为“ AA”。在第二次迭代中,文本为“ B”。
进度条在第二次迭代中显示BA而不是B。
是否有一种方法可以清除光标右边到B之后的行末的所有内容?通常,这是通过control-K(chr(11))完成的。
不幸的是,在给FormatCustomText的字符串末尾添加chr(11)会导致每次迭代输出换行符。
还有其他想法吗?
答案 0 :(得分:0)
在末尾打印“ \ 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
答案 1 :(得分:0)
github上有一个better answer