Как сделать строку состояния командной строки, которая «обновляется» в Python - PullRequest
0 голосов
/ 07 февраля 2011

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

Программы командной строки обычно просто печатают строки текста.Иногда, однако, текст обновляется.Хорошими примерами являются git pull или wget.

Как пример:

[>   ]  25%
[->  ]  50%
[--> ]  75%
[--->] 100%

Но затем на одной и той же строке меняется со временем.

Как это сделатьтакие вещи в Python?Это не должно быть более сложным, чем это, я просто хочу сделать строки состояния ...

(я хочу, чтобы это работало по крайней мере на Ubuntu, но кроссплатформенность самая хорошая.)

Ответы [ 3 ]

3 голосов
/ 07 февраля 2011

Магия заключается в \r символе, также называемом возвратом каретки, или возвращением к началу текущей строки.

from __future__ import print_function
import time    

for i in xrange(1, 100):
    print('[{0:10}]'.format('-' * (i / 10)), end = '\r')
    time.sleep(0.1)

Есть также более продвинутые способы управления выводом на консоль (через API консоли в Windows или управляющие коды ANSI) - они позволяют свободно перемещать курсор и изменять текстовые атрибуты, такие как цвет.

2 голосов
/ 07 февраля 2011

Как насчет пакета индикатора выполнения?

0 голосов
/ 07 февраля 2011

печать "текст прогресса \ r",

Обратите внимание на запятую, которая подавляет новую строку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...