在Python中键入效果

 youdinga 发布于 2023-02-13 17:20

我想制作这样的程序,它从字符串中读取字符并在一段延迟后打印每个字符,所以它看起来像打字效果.

现在我的问题是睡眠功能不正常.长时间拖延后打印整句.

import sys
from time import sleep

words = "This is just a test :P"
for char in words:
    sleep(0.5)
    sys.stdout.write(char)

我使用"sys.stdout.write"来删除字符之间的空格.

1 个回答
  • 你应该sys.stdout.flush()在每次迭代后使用

    问题是stdout用换行符刷新或用手动刷新 sys.stdout.flush()

    结果是

    import sys
    from time import sleep
    
    words = "This is just a test :P"
    for char in words:
        sleep(0.5)
        sys.stdout.write(char)
        sys.stdout.flush()
    

    您的输出被缓冲的原因是需要执行系统调用以进行输出,系统调用既昂贵又耗时(因为上下文切换等).因此,用户空间库会尝试缓冲它,如果需要,您需要手动刷新它.

    只是为了完整性...错误输出通常是非缓冲的(调试很困难).所以下面也会奏效.重要的是要意识到它被打印到错误输出.

    import sys
    from time import sleep
    
    words = "This is just a test :P"
    for char in words:
        sleep(0.5)
        sys.stderr.write(char)
    

    2023-02-13 17:23 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有