Reputation: 1365
I need to print 'ok' in same place. Any ways to do it?
I've found solutions but they don't works with IDLE correctly:
while (count < 9):
if statusm == "<Status>OK</Status>":
print "ok",
I want every 'ok' on the same line. Thanks!
Upvotes: 0
Views: 5314
Reputation: 36
For example, if you want to print "OK" in the exact same spot, you can do :
for i in range(0, 10000):
print("\rOK", end='')
Result :
OK
worte 10000 times on the same console spot.
Upvotes: 2
Reputation: 27575
That ? :
from sys import stdout
count = 1
statusm = "<Status>OK</Status>"
while (count < 9):
if statusm == "<Status>OK</Status>":
stdout.write('OK')
count += 1
EDIT
I think it isn't possible to do just one OK, in IDLE. But the following code will give idea of what is possible in a console:
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')
result
OKOKOKOKOKOKOKOK
Upvotes: 0
Reputation: 3741
Something like this?
Code:
for i in range(5):
print '\b\b\bok',
Or, if your 'ok' is at the beginning of the line you can use a single '\r' instead:
for i in range(5):
print '\rok',
Output:
ok
Upvotes: 3
Reputation: 17532
If you need to print them one at a time, use one of the other answers. This will print them all at once:
my_var = ''
while (count < 9):
if statusm == "<Status>OK</Status>":
my_var += 'ok'
print my_var
Upvotes: 0