Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python3中动态更新多行上的终端输出?_Python_Python 3.x_Linux_Terminal - Fatal编程技术网

如何在python3中动态更新多行上的终端输出?

如何在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)

我正在尝试编写一个程序,通过将数据动态打印到终端来模拟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) + 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。