Python печатать одну строку в одном месте

Мне нужно напечатать 'ok' в том же месте. Любые способы сделать это?

Я нашел решения, но они не работают с IDLE правильно:

 while (count < 9):
      if statusm == "<Status>OK</Status>":
         print "ok", 

Я хочу, чтобы все "ok" находились в одной строке. Спасибо!

Ответ 1

Например, если вы хотите напечатать "OK" в том же месте, вы можете сделать:

for i in range(0, 10000):
    print("\rOK", end='')

Результат:

OK

worte 10000 раз на одном и том же месте консоли.

Ответ 2

Что-то вроде этого?

Код:

for i in range(5):
    print '\b\b\bok',

Или, если ваше "ok" находится в начале строки, вы можете использовать один "\ r":

for i in range(5):
    print '\rok',

Выход:

ok

Ответ 3

Что?

from sys import stdout

count = 1    
statusm = "<Status>OK</Status>"
while (count < 9):
      if statusm == "<Status>OK</Status>":
          stdout.write('OK')
          count += 1

ИЗМЕНИТЬ

Я думаю, что невозможно сделать только одно ОК, в IDLE. Но следующий код даст представление о том, что возможно в консоли:

from sys import stdout
from time import sleep

several = ("<Status>OK</Status>",
           "<Status>bad</Status>",
           "<Status>OK</Status>",
           "<Status>bad</Status>",
           "<Status>yes</Status>",
           "<Status>OK</Status>",
           "<Status>none</Status>",
           "<Status>bad</Status>",
           "<Status>OK</Status>",
           "<Status>yes</Status>")

good = ('OK','yes')

for i,status in enumerate(several):
    y = str(i)
    stdout.write(y)
    stdout.write(' OK' if any(x in status for x in good) else ' --')
    sleep(1.0)
    stdout.write('\b \b\b \b\b \b')
    for c in y:  stdout.write('\b \b')

результат

OKOKOKOKOKOKOKOK

Ответ 4

Если вам нужно распечатать их по одному, используйте один из других ответов. Это напечатает их все сразу:

my_var = ''
while (count < 9):
      if statusm == "<Status>OK</Status>":
         my_var += 'ok'
print my_var