So habe ich diese einfache statusbar Umsetzung:Carriage Return ohne Zeilenumbruch auf Windows
def status_update(current, top, label="Progress"):
workdone = current/top
print("\r{0:s}: [{1:30s}] {2:.1f}%".format(label,'#' * int(workdone * 30), workdone*100), end="", flush=True)
if workdone == 1:
print()
Arbeiten wie auf Linux erwartet.
Auf Windows (10, in meinem Fall) jedoch \r
offenbar erstellt eine neue Zeile für jeden Ausgang, anstatt das vorherige zu überschreiben.
Wie kann ich das stoppen? (Vorzugsweise in einer Weise, die Linux-Kompatibilität nicht bricht.)
Die klassische Windows-Konsole geht automatisch die Cursor in der nächsten Zeile, wenn die letzte Spalte geschrieben wird. In Windows 10 kann dies durch Verwendung des virtuellen Terminalmodus deaktiviert werden. – eryksun