有个密码。我想创建一个文本动画。它打印一行文本,然后经过一段延迟后将其擦除并打印另一行。 以下是创建文本框的函数:
def frame(data):
clear = '\u001b[0m'
for letter in data:
rslt = colours['fg'][letter['color']]
rslt += letter.get('bg', '')
rslt += letter['letter']
rslt += clear
stdout.write(rslt)
以下是animator函数:
from time import sleep
def animate(data):
clear = '\u001b[100D'
#for i in range(len(data)):
for i in range(5):
#stdout.write(clear) #1
ready = change(data, i)
frame(ready)
sleep(0.4)
print()
我应该得到什么?如上所述,它应该打印一行文本,然后等待0.4,然后在下一个迭代周期中删除上一个文本,然后重复这些内容
但是我得到了什么?我没有得到任何东西(我没有精确测量,但可能是延迟的总和为0.4)一段时间,然后文本重复了5次,因为它没有被清除,因为第1行被注释了。如果没有,经过一次又一次的延迟,我得到了文本的最后一帧
写入后调用
stdout.flush()
:相关问题 更多 >
编程相关推荐