Python 删除最后打印的字符
我正在用Python编写一个程序,希望用另一个字符替换终端中打印的最后一个字符 伪代码是:Python 删除最后打印的字符,python,python-2.7,printing,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[#
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'
)
这些选项是在其他堆栈溢出问题或其他资源中建议的,似乎对我不起作用
编辑:同样使用sys.stdout.write
不会改变效果。它只是不会擦除最后打印的字符。相反,使用sys.stdout.write
时,我的输出是:
Ofenr # with a square before 'r'
我的问题是:
print
语句中打印的'\n'
在python中使用
print
时,会添加换行符(aka'\n'
)。您应该改用sys.stdout.write()
import sys
sys.stdout.write("Ofen")
sys.stdout.write("\b")
sys.stdout.write("r")
sys.stdout.flush()
输出:
Ofer
在python中使用print
时,添加了换行符(aka'\n'
)。您应该改用sys.stdout.write()
import sys
sys.stdout.write("Ofen")
sys.stdout.write("\b")
sys.stdout.write("r")
sys.stdout.flush()
输出:
Ofer
我认为字符串剥离会对您有所帮助。保存输入,只需将字符串打印到字符串-1的长度即可
实例
x = "Ofen"
print (x[:-1] + "r")
我会告诉你结果
Ofer
希望这有帮助。我认为字符串剥离会对您有所帮助。保存输入,只需将字符串打印到字符串-1的长度即可
实例
x = "Ofen"
print (x[:-1] + "r")
我会告诉你结果
Ofer
希望这有帮助。您也可以从Python 3导入打印函数。可选的结束参数可以是将要添加的任何字符串。在您的情况下,它只是一个空字符串
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
您还可以从Python 3导入print函数。可选的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
我编辑了我的问题-这也不起作用。'\b'
真的是使用sys.stdout时使用的正确字符吗?应该可以,你在尝试什么?你有一个字符串文本列表。只有当我使用flush时,它才起作用。为什么?你能解决我的第四个问题吗?为什么不起作用?它必须这样做吗h flush也一样?@在标准输出中打印时,python通常将其保存在缓冲区中。使用flush
将清空该缓冲区。请看一看。使用print
语句将始终追加'\n'
得到flush的功能。那么为什么写出'\b'
不会删除由print编写的'\n'
呢?我编辑了我的问题n-这也不管用。'\b'
真的是使用sys.stdout时使用的正确字符吗?应该可以,你在尝试什么?你有一个字符串文本列表。只有当我使用flush时,它才能正常工作。为什么?你能解决我的第四个问题吗?为什么不工作?它也与flush有关吗?@OferArial在标准输出中打印时,python将其保存在缓冲区中。使用flush
将清空该缓冲区。请看一看。使用print
语句将始终追加'\n'
得到flush所做的操作。那么,为什么写出'\b'
不会删除由print编写的'\n'
呢?您是否拒绝了我的编辑,然后使用p将我的编辑粘贴为您自己的编辑?不,我没有,社区拒绝了您的编辑,我批准了它。哦,我明白了。我很困惑,因为我的活动说编辑被拒绝,但我在这里看到了更改。对不起!您只是拒绝了我的编辑,然后将我的编辑粘贴为您自己的编辑吗?不,我没有,社区拒绝了您的编辑,我批准了它。哦,我明白了。我很困惑,贝卡“使用我的活动”表示编辑被拒绝,但我在此处看到了更改。抱歉!