0

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

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

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

我希望每个“好的”都在同一行。谢谢!

4

4 回答 4

3

像这样的东西?

代码:

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

或者,如果您的 'ok' 在行首,您可以使用单个 '\r' 代替:

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

输出:

ok
于 2013-02-09T16:11:41.430 回答
2

例如,如果您想在完全相同的位置打印“OK”,您可以执行以下操作:

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

结果 :

OK

在同一个控制台点上写了 10000 次。

于 2013-06-06T21:19:46.947 回答
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
于 2013-02-09T16:12:59.077 回答
0

如果您需要一次打印一个,请使用其他答案之一。这将一次打印它们:

my_var = ''
while (count < 9):
      if statusm == "<Status>OK</Status>":
         my_var += 'ok'
print my_var
于 2013-02-09T16:34:59.697 回答