我正在尝试更新PyCharm控制台中的最后一行。比如说,我打印了a
,然后我想把它改成c
。但是,我遇到了以下问题。当我运行:
print 'a\bc'
它打印出来了
a c
期望的输出结果(也是我在Windows控制台中看到的)为:
c
有没有办法在PyCharm的控制台中将光标向后移动?或者删除整行?
我正在尝试更新PyCharm控制台中的最后一行。比如说,我打印了a
,然后我想把它改成c
。但是,我遇到了以下问题。当我运行:
print 'a\bc'
它打印出来了
a c
期望的输出结果(也是我在Windows控制台中看到的)为:
c
\r
是有效的。我知道这是 ASCII 回车符,但我将其用作解决方法。
print("\ra")
print("\rc")
将在控制台中输出c
顺便说一下,退格键是 ASCII 字符。
这是一个已知的bug:http://youtrack.jetbrains.com/issue/PY-11300
如果您关心此问题,请在漏洞跟踪器上注册一个账户,并上传该漏洞以便引起更多关注。
sys.stdout.write
函数而不是print
,则可以使用\b
字符。我无法在PyCharm中使用print
函数使上述任何示例正常工作。# Initialize output line with spaces
sys.stdout.write(' ' * 100)
# Update line in a loop
for k in range(10)
# Generate new line of text
cur_line = 'foo %i' % k
# Remove last 100 characters, write new line and pad with spaces
sys.stdout.write('\b' * 100)
sys.stdout.write(cur_line + ' '*(100 - len(cur_line)))
# ... do other stuff in loop