2016-04-23 9 views
0

Ich frage mich, ist das möglich, eine bestimmte Sache auf Befehl Shell von einem Python-Skript ausgeführt reinigen?So reinigen Sie eine bestimmte Sache in der Befehlszeile

Z. B ein Skript enthält:

print ("Hello world") 

Wenn ich auf dieses Skript klicken verdoppeln, cmd öffnet sich und ich werde Hello world auf der Kommandozeile sehen. Jetzt frage ich mich, ist das möglich, Hello World von Shell zu säubern und etwas anderes dort zu schreiben, während cmd läuft? Wie:

print ("Hello world") 
time.sleep(1) 

# a module replace New Text with Hello world 
print("New Text") 
+0

Ich denke, es gibt Sonderzeichen die Cursor in der cmd verschieben und löschen spezifische Teile – linusg

+0

* ein Modul ersetzen neuen Text mit Hallo Welt * <- Bitte seien Sie viel genauer zu diesem Teil. Was genau willst du passieren? Ein anderes Python-Programm sollte das Programm ändern, das die Nachricht ausgibt? – timgeb

+0

Schauen Sie sich das Curses-Modul an. –

Antwort

0

Spülen Sie die gedruckten Text, nicht eine neue Zeile am Ende schreiben, sondern ein \r , um den Druck zu Beginn der nächsten Zeile zu starten:

from __future__ import print_function # to make it work with Python 2, just in case 
import time 

print ("Hello world", end='\r', flush=True) 
time.sleep(1) 
print ("New Text  ", end='\r', flush=True) 
time.sleep(1) 
print ("Last Text ") 
+0

Das ist was ich will. – GLHF

2

Sie können ANSI verwenden Escape-Zeichen für diese:

sys.stdout.write("\033[F") # Cursor up to line 
sys.stdout.write("\033[K") # Clear line 

Oder Während dies manchmal nicht funktioniert in Windows cmd ein, versuchen Sie dies:

sys.stdout.write("\r") # Move to line beginning 

Oder, wie Sie es wollen :

import time 

print("Hello world", end="\r") 
time.sleep(1) 
print("New text ") # Trailing slashes to completely override "Hello world" 
Verwandte Themen