gpt4 book ai didi

Python 立即打印?

转载 作者:行者123 更新时间:2023-11-28 19:14:22 25 4
gpt4 key购买 nike

我注意到在 python 中,当我使用 print 语句时,它不会立即打印。我发现您可以使用 sys.stdout.flush() 使其在控制台中显示打印。

这是从脚本中获得即时反馈的正确方法,还是有更好的方法?

我主要想用它来调试。我挂了,试图找到代码停滞的地方,但由于我的打印语句没有出现,所以我在错误的地方搜索,认为我的代码没有到达打印语句。 (我终于找到了它的断点,这也许是一种更好的调试方式,但 print immediate-prints 有时更方便。)

最佳答案

stdout 将如何以及何时自行刷新取决于您正在使用的打印功能的实现、您尝试打印的字符串、可能是操作系统等。

有趣的是,stdout 在遇到换行符时似乎会刷新,但我并不总是相信它,或者直到运行时我才知道我的字符串是否包含换行符,所以我使用 flush() 在 C、Java 和 Python 中,当我想确保立即打印某些内容并且我不太关心性能时,我经常使用它。我发现这特别有用的地方(即消息的时间真正重要的地方)是:靠近可能抛出异常的代码,就在阻塞 IO 调用之前,在代码的多线程部分中。

作为一个实际的例子,这样的事情似乎是 flush() 的自然用法(抱歉,它是在 C++ 而不是 Python 中)

printf("Connecing to IP Camera at %s...", ipCamAddr);
cout.flush();

// open a network connection to the camera

printf("Done!\n");

因为没有刷新,它会保留第一个字符串,直到它获得 \n,这是连接成功/失败之后。

关于Python 立即打印?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35466663/

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