【问题标题】:Slow printing using time.sleep function使用 time.sleep 功能进行慢速打印
【发布时间】:2017-10-13 08:59:48
【问题描述】:

我想使用 python3 在终端的同一行上缓慢打印字符串的字符。我使用了这个代码。

for i in "Hello":
    print(i,end='')
    time.sleep(0.2)

此代码等待 0.2 * 5(len of "Hello") 秒并一次打印所有字符。当我使用 sys.stdout.write() 函数而不是打印函数时,它会逐行打印字符同一行。如何延迟在同一行打印字符?

【问题讨论】:

    标签: python python-3.x stdout sleep


    【解决方案1】:
    import sys
    import time
    
    for c in "Hello":
        sys.stdout.write(c)
        sys.stdout.flush() # <- add this 
        time.sleep(0.2)
    

    或者在python 3 print函数中使用flush参数

    print(c, end='', flush=True)
    

    【讨论】:

    • 它仍然将每个字符打印到新行并没有什么区别。我正在使用 ubuntu,为什么这不起作用?
    • 它应该可以工作,你能复制你正在使用的完全相同的代码吗?
    • 我复制了你的代码,sys.stdout.flush() 没有效果,但打印功能中的刷新工作。
    • 在交互模式下,Python 也将prints non-assigned function returns 发送到标准输出。对于sys.stoud.write,这是打印的字符数,后跟\n - 也许这就是为什么它对你不起作用@BalajiS?为避免,只需分配返回值,例如_ = sys.stdout.write(c)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-19
    • 2023-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-10
    相关资源
    最近更新 更多