Как обновить номер без изменения строк или размещения вывода - PullRequest
1 голос
/ 27 марта 2012

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

Например, я хочу вывод, как:

working on: 9

и измените на:

working on: 10

без изменения строки, на которой он отображается.Как я буду делать это?Я также предпочел бы, чтобы вы не использовали cls, чтобы предотвратить "мигание".

Ответы [ 2 ]

5 голосов
/ 27 марта 2012

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

import time
import sys
for i in range(10):
    print "\rworking on:", i,
    sys.stdout.flush()
    time.sleep(1)

Чтобы линия действительно появилась, вам может потребоваться вызов sys.stdout.flush().

1 голос
/ 27 марта 2012

Нет простого способа сделать это, не прибегая к графическому интерфейсу какого-либо типа.Стандартный способ создания графического интерфейса пользователя с использованием терминала - это модуль Python curses .Для объяснения того, как использовать проклятия в вашем приложении, смотрите: Программирование Curses с Python.

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