[英]sys.stdout.write not working as expected in Python
我有两个函数prints()
和clear()
。 函数prints()
打印文本行,函数clear()
使用以下方法删除打印行:
def clear():
i = 0
while True:
if(i > globals['l']):
break
else:
sys.stdout.write("\033[F \033[K")
i += 1
其中globals['l']
是要清除的行数。
然后在函数clear()
运行并且行被清除之后,函数prints()
再次运行,等等。
我不明白为什么函数clear()
仅清除32行中的22行。 但是,例如,如果我有19条线,则它工作正常。 问题出在哪儿? 我怎样才能解决这个问题?
尝试这个:
def clear(line_count):
sys.stdout.write("\033[F \033[K" * line_count)
sys.stdout.flush()
编辑:仅适用于Unix系统
您可以使用:
print("\033c")
要么:
import subprocess
subprocess.call(["printf", "\033c"])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.