sys.stdout.flush()在python循环中无法正常工作

时间:2014-11-09 11:44:55

标签: python stdout flush

我有这段代码:

sys.stdout.write("\r [*] Serching for "+FirstName+" AND "+LastName )
sys.stdout.flush()

但是当我把它放在循环中时,我一步一步地将 FirstName 与对方混合在一起,并且 LastName 彼此混合。

Searching for TEST_THREE AND EXAMPLE_THREE   #First time
Searching for TEST_TWOEE AND EXAMPLE_TWOEE   #Next time 

您在EE ...

之后看到THREE TWO

我该如何解决?

1 个答案:

答案 0 :(得分:5)

用额外的空格填充字符串。例如,使用str.ljust

msg = "[*] Serching for {} AND {}".format(first_name, last_name)
sys.stdout.write("\r " + msg.ljust(70))
sys.stdout.flush()

使用str.format

msg = "[*] Serching for {} AND {}".format(first_name, last_name)
sys.stdout.write("\r {:<70}".format(msg))
sys.stdout.flush()