首页 > 解决方案 > 在具有多个 \n 的字符串上使用 \r

问题描述

我有一个带有多个 \n 的字符串,以便以方形 f.ex 获得它。对于矩阵,地图等。

如果我想用

sys.stdout.write("\r %s" % TheString) sys.stdout.flush()

它跳到最后一行的开头,覆盖它并在下面打印新字符串。但我希望它一直跳到第一行并覆盖整个输出。我尝试了多个 \r (乘以行数),但它没有用。还有其他可能吗?

谢谢!

标签: pythonstdoutsys

解决方案


IIUC 正如@Boldewyn 所指出的那样,这并不容易,但您可以在发出新的sys.stdout.write使用之前从先前的输出中清除屏幕os.system("clear")(在类 UNIX 系统中):

import os
import sys

sys.stdout.write("This")
sys.stdout.write("Will")
sys.stdout.write("Not")
sys.stdout.write("Show")

# After this command all output before will be cleared
os.system("clear")
sys.stdout.write("\r %s" % "Blablablabla")

推荐阅读