协慌网

登录 贡献 社区

如何刷新打印功能的输出?

如何强制 Python 的打印功能输出到屏幕?

这不是禁用输出缓冲的重复 - 链接的问题是尝试无缓冲输出,而这是更一般的。这个问题的最佳答案太强大或涉及到这个问题(他们不是很好的答案),这个问题可以在谷歌上找到一个相对新手。

答案

运行python -h ,我看到一个命令行选项

-u:无缓冲的二进制 stdout 和 stderr; 还有 PYTHONUNBUFFERED = x 有关 '-u' 的内部缓冲的详细信息,请参阅手册页

这是相关的文档

从 Python 3.3 开始,您可以强制执行普通的print()函数,而无需使用sys.stdout.flush() ; 只需将 “flush” 关键字参数设置为 true 即可。从文档

print(* objects,sep ='',end ='\ n',file = sys.stdout,flush = False)

将对象打印到流文件,由 sep 分隔,然后结束。 sep,end 和 file(如果存在)必须作为关键字参数给出。

所有非关键字参数都转换为字符串,如 str(),并写入流,由 sep 分隔,后跟 end。 sep 和 end 都必须是字符串; 它们也可以是 None,这意味着使用默认值。如果没有给出对象,print()将只写入结束。

file 参数必须是带有 write(string)方法的对象; 如果它不存在或 None,将使用 sys.stdout。 输出是否缓冲通常由文件确定,但如果 flush 关键字参数为 true,则强制刷新流。