如何在没有“闪烁”屏幕的情况下在Python中打印网格

时间:2019-12-03 15:50:20

标签: python colorama

在我使用Python开发的程序中,我需要能够逐一打印元素列表,并在 n 元素之后移至新行以形成网格。但是,每次程序重新打印网格时,您都可以看到网格逐个进行,这对用户而言看起来很丑陋并且分散了用户的注意力。我想知道是否有一种方法可以在短时间内“暂停”控制台输出以允许打印网格,然后再显示网格,从而擦除先前的打印输出,而不是逐元素显示。我之所以需要这样做,是因为该程序将Colorama用于彩色输出,但是列表中的不同元素将需要具有不同的颜色,这意味着每个元素必须一张一张地打印。

编辑(当前代码):

import time as t
from os import system as c
h = 50
w = 50
loop1 = 0
ostype = "Windows"
def cl():
  if(ostype == "Linux"):
    c('clear')
  if(ostype == "Windows"):
    c('cls')
def do():
    grid = []
    for x in range(0,h):
        temp = []
        for z in range(0,w):
            temp.append("#")
        grid.append(temp)
    for a in range(0,h):
        for b in range(0,w):
            print(grid[a][b], flush=False, end="")
        print()
while(loop1 == 0):
    do()
    t.sleep(1)
    cl()

1 个答案:

答案 0 :(得分:0)

您可能会告诉print不刷新标准输出缓冲区,而让最后一个print刷新所有内容。取决于您使用的python版本,对于python 3打印函数需要使用flush参数,将其相应地设置为true / false。