gpt4 book ai didi

python-3.x - "time.sleep()"在使用 "end"属性的带有打印函数的 for 循环中不起作用吗?

转载 作者:行者123 更新时间:2023-12-03 18:44:53 25 4
gpt4 key购买 nike

所以,我最近才在学习 python,我正在玩一些代码。我想在有一些延迟的循环中打印一些没有换行符的字符。我在 for 循环中使用了 time.sleep() 函数。但是,它所做的只是将输出延迟它在循环中花费的总时间,一次全部,然后打印出字符。

我确实在没有“结束”属性的情况下尝试过它,并且效果很好。但是,我不想换行。

from time import sleep
print("starting the progress bar")


for i in range(50):
sleep(0.1)
print("#", end = '')

我希望输出打印一个字符并延迟打印另一个字符。但是,脚本会延迟 0.1 秒进行 50 次,然后一次打印出所有字符

最佳答案

由于 python 是行缓冲的,它会在打印标准输出之前等待换行符。

解决方案 1:

将 PYTHONUNBUFFERED=1 添加到您的 env.var:

export PYTHONUNBUFFERED=1

这将允许立即转储输出

解决方案 2:

当您使用 python 3 时,您可以使用 flush=True
for i in range(50):
sleep(0.1)
print("#", end = '', flush=True)

关于python-3.x - "time.sleep()"在使用 "end"属性的带有打印函数的 for 循环中不起作用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56896710/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com