2016-06-24 3 views
0

Я хочу стереть все выходные данные консоли, которые были напечатаны перед каждой итерацией цикла.Python удаляет все консольные выходные данные

В настоящее время у меня есть такой код:

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+, все в порядке.

ответ

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) 
+3

Это не сделало ничего с выходом консоли, по крайней мере, на Ubuntu 14.04 и Python 3.5 – Tom

0

Unbutu будет вызывать сброс:

for x in range(1, 3): 
    subprocess.call('reset') 
    print('Some information #{0}'.format(x)) 
    print('And a lot of different prints') 
    sleep(1) 
Смежные вопросы