我在python中有一个脚本,它打印一个列表,如下所示:
list_of_lists = [["a", "b", "c", "d"],
["a", "b", "c", "d"],
["a", "b", "c", "d"]]
def print_lists_of_lists(list_of_lists):
for list in list_of_lists:
print()
for char in list:
print(char, end = "")
使用此函数,我得到一个如下所示的输出:
abcd
abcd
abcd
输入会更改这些列表的内容。每次用户输入时,我都会清除命令提示符,然后重新打印列表。这样可以正常工作,但是如果用户对输入进行了垃圾邮件,那么屏幕就会闪烁"闪烁"由于打印过程无法跟上输入。
我对解决方案的想法是转到命令提示符中的特定行,其中列表的内容已更改...
abcd
abcc #So from here down is cleared and reprinted
abcd #because the d at the end of the line changed to a c
...从该行清除屏幕,然后从同一行重新打印列表。这样,只有部分屏幕发生变化,导致闪烁较少。
但我不知道该怎么做。我已经尝试过ansi代码移动光标,查看了windows的curses实现,但我似乎无法找到任何方法来执行此操作。有什么想法吗?
先谢谢。
编辑:在伪代码中,这就是我所拥有的:
虽然是真的: clear_screen print_screen wait_for_keypress
因此,如果用户按下某个键,则此循环速度非常快,使屏幕闪烁"闪烁等等。