您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Python中的打字效果

Python中的打字效果

您应该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)
python 2022/1/1 18:35:24 有381人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶