我正在用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'
我的问题:
'\n'
语句中打印的print
?答案 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
希望这会有所帮助。 :)