Python在同一行打印相同间距
我想在同一个地方打印出'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次。