gpt4 book ai didi

python - 为什么指定end关键字时python3的print语句不刷新输出?

转载 作者:太空宇宙 更新时间:2023-11-03 13:29:40 27 4
gpt4 key购买 nike

from sys import argv, stdout as cout
from time import sleep as sl
print("Rewinding.......",end = '') # If end is given output isn't flushed. But why?
cout.flush()
for i in range(0,20):
sl(0.2)
print(".",end='',flush = True) #No output is printed if flush wasn't specified as true.

print("Done") #Output is by default flushed here

当我指定 end 和 sleep 时,我注意到输出直到下一次打印才刷新,默认情况下它是刷新的。

为什么会这样?我不得不手动刷新输出。

最佳答案

事实上,这是底层 stdio 函数的默认行为。

当输出到控制台时,遇到换行符时会自动刷新流,但不会刷新其他字符。

如果输出不是控制台,那么即使是换行符也不会触发刷新。

如果你想确定flush,你可以告诉print()明确地:

print("Rewinding.......",end = '',flush=True)

关于python - 为什么指定end关键字时python3的print语句不刷新输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49081942/

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