Ответ 1
Например, если вы хотите напечатать "OK" в том же месте, вы можете сделать:
for i in range(0, 10000):
print("\rOK", end='')
Результат:
OK
worte 10000 раз на одном и том же месте консоли.
Мне нужно напечатать 'ok' в том же месте. Любые способы сделать это?
Я нашел решения, но они не работают с IDLE правильно:
while (count < 9):
if statusm == "<Status>OK</Status>":
print "ok",
Я хочу, чтобы все "ok" находились в одной строке. Спасибо!
Например, если вы хотите напечатать "OK" в том же месте, вы можете сделать:
for i in range(0, 10000):
print("\rOK", end='')
Результат:
OK
worte 10000 раз на одном и том же месте консоли.
Что-то вроде этого?
Код:
for i in range(5):
print '\b\b\bok',
Или, если ваше "ok" находится в начале строки, вы можете использовать один "\ r":
for i in range(5):
print '\rok',
Выход:
ok
Что?
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
Если вам нужно распечатать их по одному, используйте один из других ответов. Это напечатает их все сразу:
my_var = ''
while (count < 9):
if statusm == "<Status>OK</Status>":
my_var += 'ok'
print my_var