2016-06-24 10 views
0

Ich möchte alle Konsolenausgaben löschen, die vor jeder Schleifeniteration gedruckt wurden.Python alle Konsolenausgaben entfernen

Zur Zeit habe ich einen Code wie folgt aus:

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) 

Aber es funktioniert nicht sehr gut, es „move“ Konsolenfenster und Fahrbefehl entfernen.

Gibt es eine Möglichkeit, es zu beheben? Wenn es Python 3+ nur Lösung wird, ist es in Ordnung.

Antwort

1

können Sie subprocess verwenden:

# -*- 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

Das hat nichts mit Konsolenausgabe, zumindest auf Ubuntu 14.04 und Python 3.5 – Tom

0

Eine Unbutu Lösung wäre zurückgesetzt aufzurufen:

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