Python在同一行打印相同间距

0 投票
4 回答
5302 浏览
提问于 2025-04-17 15:21

我想在同一个地方打印出'ok'。有没有什么办法可以做到这一点?

我找到了几种解决方案,但在IDLE里都不太好使:

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

我希望每次打印的'ok'都在同一行。谢谢!

4 个回答

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

像这样吗?

代码:

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

或者,如果你的'ok'在行的开头,你可以只用一个'\r'来代替:

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

输出:

ok
2

比如说,如果你想在同一个地方打印“OK”,你可以这样做:

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

结果是:

OK

在同一个控制台位置写了10000次。

撰写回答