多行上的Python 3打印更新

时间:2016-09-12 16:42:39

标签: python

是否可以打印和更新多行? 这适用于一行:

print ("Orders: " + str(OrderCount) + " Operations: " + str(OperationCount), end="\r")

并得到这个:(当然数字更新因为它在一个循环中)

Orders: 25 Operations: 300

我试过这个:

print ("Orders: " + str(OrderCount) + "\rOperations: " + str(OperationCount), end="\r\r")

并得到:(数字确实正确更新)

Operations: 300

寻找更新的两行:

Orders: 25
Operations: 300

而不是:

Orders: 23
Operations: 298

Orders: 24
Operations: 299

Orders: 25
Operations: 300

2 个答案:

答案 0 :(得分:3)

\r回车符,其中光标移动到行的开头(第0列)。从那里开始,写更多的文字将覆盖之前写的内容,所以你最终只能使用最后一行(这足以覆盖你之前写过的所有内容)。

你想要\n,一个新行,它移动到下一行(并再次从第0列开始):

print ("Orders: " + str(OrderCount) + "\nOperations: " + str(OperationCount), end="\n\n")

请考虑将字符串模板与str.format()一起使用,而不是使用str()+连接:

print("Orders: {}\nOperations: {}\n".format(OrderCount, OperationCount))

请注意,您无法重新上线;如果你想使用\r回车来更新两行,那么你就不能直接打印了。您需要使用Curses切换到全终端控件,或者坚持将所有内容放在一行上。

如果您打算使用Curses路线,请考虑Windows兼容性最好。

答案 1 :(得分:0)

您可能需要\n而不是\r\r是“回车”,a.k.a。“回到行的开头” - 所以你打印“操作”而不是“订单”。

相关问题