sys.stdout.write在Python中没有按预期工作

时间:2017-01-06 17:27:42

标签: python python-2.7 while-loop sys

我有两个函数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()为什么只清除22行32行。但是,如果我有,例如,19行它是完美的。问题出在哪儿?我该如何解决这个问题?

2 个答案:

答案 0 :(得分:2)

试试这个:

def clear(line_count):
    sys.stdout.write("\033[F \033[K" * line_count)
    sys.stdout.flush()

答案 1 :(得分:0)

编辑: 仅适用于Unix系统

您可以使用:

print("\033c")

或者:

import subprocess
subprocess.call(["printf", "\033c"])