"Übrigens...... Wie kann man es jedes Mal aktualisieren, damit es an einer Stelle gedruckt wird, indem man einfach die Nummer ändert."
Das ist ein wirklich heikles Thema. Was zack (Ausgabe von Konsolensteuercodes) ist eine Möglichkeit, dies zu erreichen.
Sie können (n)curses verwenden, aber das funktioniert hauptsächlich auf *nixes.
Unter Windows (und hier kommt der interessante Teil), der selten erwähnt wird (ich kann nicht verstehen, warum), können Sie Python-Bindungen an WinAPI verwenden ( http://sourceforge.net/projects/pywin32/ auch mit ActivePython standardmäßig) - es ist nicht so schwer und funktioniert gut. Hier ist ein kleines Beispiel:
import win32console, time
output_handle = win32console.GetStdHandle( win32console.STD_OUTPUT_HANDLE )
info = output_handle.GetConsoleScreenBufferInfo()
pos = info["CursorPosition"]
for i in "\\|/-\\|/-":
output_handle.WriteConsoleOutputCharacter( i, pos )
time.sleep( 1 )
Oder, wenn Sie Folgendes verwenden möchten print
(Anweisung oder Funktion, kein Unterschied):
import win32console, time
output_handle = win32console.GetStdHandle( win32console.STD_OUTPUT_HANDLE )
info = output_handle.GetConsoleScreenBufferInfo()
pos = info["CursorPosition"]
for i in "\\|/-\\|/-":
print i
output_handle.SetConsoleCursorPosition( pos )
time.sleep( 1 )
win32console
Modul ermöglicht es Ihnen, viele weitere interessante Dinge mit der Windows-Konsole zu tun... Ich bin kein großer Fan von WinAPI, aber vor kurzem habe ich erkannt, dass mindestens die Hälfte meiner Abneigung dagegen durch das Schreiben von WinAPI-Code in C verursacht wurde - pythonische Bindungen sind viel einfacher zu verwenden.
Alle anderen Antworten sind natürlich toll und pythonisch, aber... Was wäre, wenn ich drucken wollte auf vorherige Linie? Oder einen mehrzeiligen Text schreiben, ihn dann löschen und dieselben Zeilen erneut schreiben? Meine Lösung macht das möglich.