Python删除所有控制台输出

时间:2016-06-24 12:56:08

标签: python console

我想擦除在每次循环迭代之前打印的所有控制台输出。

目前我有这样的代码:

import sys
from time import sleep

def delete_last_printed_lines(n=1):
    CURSOR_UP_ONE = '\x1b[1A'
    ERASE_LINE = '\x1b[2K'

    for _ in range(n):
        sys.stdout.write(CURSOR_UP_ONE)
        sys.stdout.write(ERASE_LINE)

for x in range(1, 3):
    delete_last_printed_lines(3)

    print('')
    print('Some information #{0}'.format(x))
    print('And a lot of different prints')
    sleep(1)

但它工作得不是很好,它“移动”控制台窗口并删除运行命令。

有没有办法解决它?如果它只是Python 3+解决方案,那就没关系。

2 个答案:

答案 0 :(得分:1)

您可以使用子流程:

# -*- coding: utf-8 -*-
import sys
import subprocess
from time import sleep

for x in range(1, 3):
    subprocess.call('clear')
    print('')
    print('Some information #{0}'.format(x))
    print('And a lot of different prints')
    sleep(1)

答案 1 :(得分:0)

Unbutu解决方案是调用 reset

for x in range(1, 3):
    subprocess.call('reset')
    print('Some information #{0}'.format(x))
    print('And a lot of different prints')
    sleep(1)