繁体   English   中英

sys.stdout.write在Python中无法按预期工作

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM