删除最后打印的字符

2024-09-27 07:25:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用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'

这些选项是在其他堆栈溢出问题或其他资源中建议的,似乎对我不起作用

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

Ofenr # with a square before 'r'

我的问题是:

  1. 为什么这些选项不起作用
  2. 我如何实现期望的输出
  3. 这与Windows操作系统或Python 2.7有关吗
  4. 当我找到方法时,是否可以手动擦除(使用想要的橡皮擦),删除在python的print语句中打印的'\n'

Tags: the代码程序终端选项stdoutsysnot
3条回答

在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

您还可以从Python3导入print函数。可选的结束参数可以是要添加的任何字符串。在您的情况下,它只是一个空字符串

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

我想剥线会对你有帮助的。保存输入,只需将字符串打印到length of string -1

实例

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

我会告诉你结果

Ofer

希望这有帮助。:)

相关问题 更多 >

    热门问题