Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么sys.stdout.write(";\b\b\b";)在Jupyter笔记本中只擦除一个字符,而sys.stdout.write(";\b\b";)则擦除两个字符?_Python_Terminal_Jupyter Notebook - Fatal编程技术网

Python 为什么sys.stdout.write(";\b\b\b";)在Jupyter笔记本中只擦除一个字符,而sys.stdout.write(";\b\b";)则擦除两个字符?

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("

我试图让我的脚本编写一个更新的百分比,我遇到了以下问题:我需要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("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
写了什么,但我不确定。