在Windows下你必须做一个“新行” \n
你做一个“回车”之前\r
示例:基于评论
>>>car = "carriage\n\rreturn"
>>>print (car)
carriage
return
>>>
[编辑]
如果我们的目标是打印比上年线,下面可在Microsoft Windows
import sys
def print_and_return(string):
#adding '\b' which moves the carriage back one character
#based on length of the string
sys.stdout.write(string.ljust(len(string)*2,'\b'))
sys.stdout.flush()
#this will print to stdout, and 'return' position to start
print_and_return("string1")
#normal print, but starting at the start of the previous print
print("string2")
012使用
这将产生
string2
,将有覆盖原来的字符串,就可以把两个语句之间time.sleep()
,如果你想看到它。
但是,这将打印在原始行的第一行上,但它不会删除以前打印的字符串,因此如果第二个字符串比最初打印的字符串短,原始打印的字符串的末尾保持打开屏幕。
print_and_return("string1=long")
print("string2")
会产生
string2=long
您可以随时返回以前的字符串的长度,然后添加空格到第二个字符串,然后将用空格覆盖其他字符的结束。
import sys
def print_and_return(string):
sys.stdout.write(string.ljust(len(string)*2,"\b"))
sys.stdout.flush()
return len(string)
l = print_and_return("string1=long")
#normal print, but starting at the start of the previous print
#adding spaces to ensure the length is the same as previous printed string
print("string2".ljust(l))
它将会产生:
string2
HTH。
没有答案,但我找到了相关的电子邮件存档:https://mail.python.org/pipermail/tutor/2006-February/045277.html。这就是说,使用回车这种方式是非常罕见的。事实上,它是Windows对新行的标准表示的一部分,并且是旧行的Mac代表的换行符,可能是它不常见的原因之一。我当然不会指望它可以跨系统移植。 (或者甚至在显示器上,正如你发现的那样,例如,它如何使用PuTTY进行SSH工作?)你想完成什么? – jpmc26
感谢您的链接,这是我正在寻找的答案。我并没有试图完成任何事情,特别是通过O'reilly系列的工作。我发现如果我不了解某些东西,它会在稍后咬我。 – KEJ