Gerswin Lee
Gerswin Lee

Reputation: 1365

python print one line same space

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

Answers (4)

dymayday
dymayday

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

eyquem
eyquem

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

Matt
Matt

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

Rushy Panchal
Rushy Panchal

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

Related Questions