python打印一行相同的空格

时间:2013-02-09 16:05:36

标签: python loops printing

我需要在同一个地方打印'ok'。有什么办法吗?

我找到了解决方案,但它们无法正确使用IDLE:

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

我想在同一条线上每个'好'。谢谢!

4 个答案:

答案 0 :(得分:3)

这样的东西?

<强>代码:

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

或者,如果您的'ok'位于该行的开头,则可以使用单个'\ r'代替:

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

输出

ok

答案 1 :(得分:2)

例如,如果要在完全相同的位置打印“确定”,则可以执行以下操作:

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

结果:

OK

在同一个控制台上擦拭10000次。

答案 2 :(得分:0)

那是吗? :

from sys import stdout

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

修改

我认为在IDLE中不可能只做一个OK。但是下面的代码将介绍控制台中可能的内容:

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

答案 3 :(得分:0)

如果您需要一次打印一张,请使用其他答案之一。 这将立即打印出来:

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