删除最后打印的字符python

时间:2017-02-18 09:14:09

标签: python python-2.7 printing

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

伪代码是:

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

我正在使用Windows8操作系统,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操作系统或Python 2.7有关吗?
  4. 当我发现如何操作时,是否可以手动擦除(使用想要的橡皮擦),删除在python的'\n'语句中打印的print

3 个答案:

答案 0 :(得分:3)

在python中使用print时,会添加换行符(又名'\n')。您应该使用sys.stdout.write()代替。

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

输出:Ofer

答案 1 :(得分:0)

您还可以从Python 3导入打印功能。可选的end参数可以是将添加的任何字符串。在你的情况下,它只是一个空字符串。

from __future__ import print_function # Only needed in Python 2.X

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

输出

Ofer

答案 2 :(得分:-2)

我认为字符串剥离可以帮到你。保存输入,然后将字符串打印到length of string -1

实例

x = "Ofen"
print (x[:-1] + "r")

会给你结果

Ofer

希望这会有所帮助。 :)