Интерфейс командной строки Python


Эй, ребята / девчонки, я пишу скрипт на python, который исправляет некоторые повторяющиеся проблемы в моей базе данных. Я хотел бы показать некоторый статус прогресса пользователям, в настоящее время я просто печатаю его следующим образом:

print "Merged " + str(idx) + " out of " + str(totalCount);

Проблема в том, что он печатает это в новой строке для каждой записи, и это не выглядит так хорошо :) я хотел бы либо всегда печатать строку выше на той же строке на экране, либо использовать какой-то умный виджет, который отображает ее в каком-то индикаторе прогресса.

Я намерен запустить это в командной строке любые предложения будут высоко оценены.

2 2

2 ответа:

Если вы просто хотите постоянно перезаписывать одну и ту же строку, используйте '\r' и print foo,, чтобы действовать как возврат каретки и печать без конца строки print.

while doingStuff:
    msg = "\rMerged %s out of %s" % (idx, totalCount)
    print msg,

Но если вы разрабатываете более модное консольное приложение, вам, возможно, следует изучить использование curses (только для Unix, хотя)

Проверить fish.