python print one line same space

前端 未结 4 2070
悲&欢浪女
悲&欢浪女 2021-01-26 14:06

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         


        
相关标签:
4条回答
  • 2021-01-26 14:09

    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
    
    0 讨论(0)
  • 2021-01-26 14:17

    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
    
    0 讨论(0)
  • 2021-01-26 14:28

    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.

    0 讨论(0)
  • 2021-01-26 14:32

    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
    
    0 讨论(0)
提交回复
热议问题