Пользовательский интерфейс командной строки Python - PullRequest
2 голосов
/ 25 мая 2010

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

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

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

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

Ответы [ 2 ]

4 голосов
/ 25 мая 2010

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

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

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

4 голосов
/ 25 мая 2010

Выезд fish.

...