Python 为什么sys.stdout.write(";\b\b\b";)在Jupyter笔记本中只擦除一个字符,而sys.stdout.write(";\b\b";)则擦除两个字符?
我试图让我的脚本编写一个更新的百分比,我遇到了以下问题:我需要Python来擦除我打印的最后一组字符,但我无法让它擦除超过2个字符 将此输入Jupyter笔记本Python 为什么sys.stdout.write(";\b\b\b";)在Jupyter笔记本中只擦除一个字符,而sys.stdout.write(";\b\b";)则擦除两个字符?,python,terminal,jupyter-notebook,Python,Terminal,Jupyter Notebook,我试图让我的脚本编写一个更新的百分比,我遇到了以下问题:我需要Python来擦除我打印的最后一组字符,但我无法让它擦除超过2个字符 将此输入Jupyter笔记本 sys.stdout.write("abcd") sys.stdout.write("\b") 输出 abc ab abc 很好,让我们再擦掉一个 sys.stdout.write("abcd") sys.stdout.write("\b\b") 输出 abc ab abc 很好 sys.stdout.write("
sys.stdout.write("abcd")
sys.stdout.write("\b")
输出
abc
ab
abc
很好,让我们再擦掉一个
sys.stdout.write("abcd")
sys.stdout.write("\b\b")
输出
abc
ab
abc
很好
sys.stdout.write("abcd")
sys.stdout.write("\b\b\b")
输出
abc
ab
abc
什么?怎么搞的?为什么它只删除一个字符而不是3个?我能做些什么来避免这种情况呢?@rdas这是显而易见的,同时也是违反直觉的,谢谢。那我就无法擦除3个字符了吗?@rdas等等,那为什么\b\b可以工作?第二个\b不应该删除第一个吗?相反,它正确地删除了2个字符!这两种情况下都不会输出
abcd
,这一事实让我感到惊讶。在\b
之后,你向sys.stdout
写了什么?@mkrieger1没什么,这就是我所写的。我怀疑Jupyter笔记本自己向sys.stdout
写了什么,但我不确定。@rdas这是非常明显的,同时也是违反直觉的,谢谢。那我就无法擦除3个字符了吗?@rdas等等,那为什么\b\b可以工作?第二个\b不应该删除第一个吗?相反,它正确地删除了2个字符!这两种情况下都不会输出abcd
,这一事实让我感到惊讶。在\b
之后,你向sys.stdout
写了什么?@mkrieger1没什么,我就写了这么多我怀疑Jupyter笔记本自己向sys.stdout
写了什么,但我不确定。