【问题标题】:sys.stdout.flush() doesn't work properly within loop in pythonsys.stdout.flush() 在 python 的循环中无法正常工作
【发布时间】:2014-11-09 11:44:55
【问题描述】:

我有这个代码:

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

但是当我把它放在循环中时,我会一步一步地混合 FirstNames 和 LastNames。

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

你看THREE后面有EETWO...

我该如何解决?

【问题讨论】:

    标签: python stdout flush


    【解决方案1】:

    用额外的空格填充字符串。例如,使用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()
    

    【讨论】:

    • 对不起,我有错误:AttributeError: 'str' object has no attribute 'foramt'
    猜你喜欢
    • 2020-10-25
    • 1970-01-01
    • 2021-06-22
    • 2019-01-01
    • 2013-10-09
    • 1970-01-01
    相关资源
    最近更新 更多