如何在python3中动态更新多行上的终端输出?
我正在尝试编写一个程序,通过将数据动态打印到终端来模拟20x4字符的LCD屏幕。目前我只是想让终端的输出正常工作,但我不知道如何在不使用新行字符的情况下同时打印多行如何在python3中动态更新多行上的终端输出?,python,python-3.x,linux,terminal,Python,Python 3.x,Linux,Terminal,我正在尝试编写一个程序,通过将数据动态打印到终端来模拟20x4字符的LCD屏幕。目前我只是想让终端的输出正常工作,但我不知道如何在不使用新行字符的情况下同时打印多行 import time i = 0 for i in range(0, 9): print(str(i) + str(i) + str(i) + str(i) + str(i) + str(i) + str(i) + str(i) + str(i) + str(i) + str(i)
import time
i = 0
for i in range(0, 9):
print(str(i) + str(i) + str(i) + str(i) + str(i) +
str(i) + str(i) + str(i) + str(i) + str(i) +
str(i) + str(i) + str(i) + str(i) + str(i) +
str(i) + str(i) + str(i) + str(i) + str(i), end='\r')
print(str(i) + str(i) + str(i) + str(i) + str(i) +
str(i) + str(i) + str(i) + str(i) + str(i) +
str(i) + str(i) + str(i) + str(i) + str(i) +
str(i) + str(i) + str(i) + str(i) + str(i), end='\r')
print(str(i) + str(i) + str(i) + str(i) + str(i) +
str(i) + str(i) + str(i) + str(i) + str(i) +
str(i) + str(i) + str(i) + str(i) + str(i) +
str(i) + str(i) + str(i) + str(i) + str(i), end='\r')
time.sleep(1)
目前,这段代码打印一行20个字符,更新正确,但我需要它下面的额外两行。
我想要的预期输出是4行,每行20个字符,动态更新。
最终,每一行都将是一个字符串,包含20个字符 您应该能够使用f字符串格式和docstring实现这一点 请参阅官方文档了解F字符串(格式化字符串文本) 代码应该是这样的
import time
i = 0
for i in range(0, 9):
print(f"""
{str(i)} {str(i)} {str(i)} {str(i)} {str(i)}
{str(i)} {str(i)} {str(i)} {str(i)} {str(i)}
{str(i)} {str(i)} {str(i)} {str(i)} {str(i)}
{str(i)} {str(i)} {str(i)} {str(i)} {str(i)} """)
time.sleep(1)
请让我知道这是否有帮助如果这不是您想要的,请让我知道,这样我可以帮助您找到更适合您需要的东西。稍微调整一下Rodrez的答案:
导入时间
i=0
goback=“\033[F”*5#您是否尝试过pyautogui
?您可以将4x20 LCD的每个字符保留在一个数组中,然后更新sameI not Wear pyautoaui。这将如何工作?这不就是打印4行,然后在其下打印4行,然后再打印4行吗?这不是OP所要求的。我的歉意是我误解了,我将提供另一条代码抱歉。欢迎加入。不要想太多不同的代码,我真的怀疑在没有专门的库打印的情况下在纯Python中很容易做到(就像Unix中的top
那样)。除非有反向换行,否则会返回。哈哈!玩得开心!哈哈有趣。不幸的是,这会打印出多行新行。对我来说不是这样,在mac上。linux很可能是相同的。windows?不知道-33f是我相信的nix shell终端的字符代码。请确保您在正确的位置使用goback并使用内容正确。您可能还需要调整5
,使其成为模板每次使用的行数。即,如果是5行,则备份5 33f。