一尘不染

删除最后打印的字符python

python

我正在用Python编写程序,并希望将终端中打印的最后一个字符替换为另一个字符。

伪代码为:

print "Ofen",
print "\b", # NOT NECCESARILY \b, BUT the wanted print statement that will erase the last character printed
print "r"

我正在使用Windows8 OS,Python 2.7和常规解释器。

到目前为止,我看到的所有选项都不适合我。(例如:\010'\033[#D'(#为1),'\r')。

这些选项是在其他Stack Overflow问题或其他资源中提出的,似乎对我不起作用。

编辑
:也使用sys.stdout.write不会改变影响。它只是不会擦除最后打印的字符。相反,使用时sys.stdout.write,我的输出是:

Ofenr # with a square before 'r'

我的问题:

  1. 这些选项为什么不起作用?
  2. 如何获得所需的输出?
  3. 这与Windows OS或Python 2.7有关吗?
  4. 当我找到方法时,是否可以手动擦除(使用所需的橡皮擦),删除'\n'pythonprint语句中打印的?

阅读 198

收藏
2021-01-20

共1个答案

一尘不染

print在python中使用时,'\n'添加了换行符(aka )。您应该sys.stdout.write()改用。

import sys
sys.stdout.write("Ofen")
sys.stdout.write("\b")
sys.stdout.write("r")
sys.stdout.flush()

输出: Ofer

2021-01-20