如何刷新Python打印输出?

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

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


import sys
sys.stdout.flush()

默认打印输出到sys.stdout

参考文献:

  • http://docs.python.org/reference/simple_stmts.html#the-print-statement
  • http://docs.python.org/library/sys.html
  • http://docs.python.org/library/stdtypes.html#file-objects

  • 运行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分隔,然后以end结尾。 sep,end和file(如果存在)必须作为关键字参数给出。

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

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

    链接地址: http://www.djcxy.com/p/13515.html

    上一篇: How to flush output of Python print?

    下一篇: Which is the best python module for command execution