python - print() 有时无法在命令提示符中显示

标签 python terminal command-prompt

我有一个 python 脚本,可以抓取页面,输出一些数据,然后休眠 5 分钟,然后重复该过程。

我注意到,大约有 1/5 次我运行此脚本,在看似随机的一段时间后,打印将停止显示在命令提示符中,但一旦我在终端中键入任何键,它们就会突然出现。

while True:
   # request & parse page
   # print results
   # sleep for 5 minutes

从来没有任何错误,脚本一直运行良好,但我很困惑为什么打印暂时停止出现。

有没有办法确保这种情况不会发生?

最佳答案

尝试print(“blash”,flush=True)

毫不奇怪,the documentation for print()不太清楚。正在打印的数据可能在某个时刻存储在缓冲区中,并且缓冲区可能会覆盖自身或无法跟上正在处理的数据的速度。 flush 参数清除缓冲区。

文档指出,

Whether output is buffered is usually determined by file, but if the flush keyword argument is true, the stream is forcibly flushed.

我还没有对其进行分析,但我的猜测是,每次打印时进行冲洗都会从技术上减慢速度。但在尝试优化之前,请先尝试一下,看看它对您有何作用。

关于python - print() 有时无法在命令提示符中显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57187125/

相关文章:

c - gnome-terminal 支持 DOS 代码页吗?

python - python中字符串的最大公约数

python - 使用 tensorflow 获取真阳性、假阳性、假阴性和真阴性列表

python - 教程中出现多个 SparkContexts 错误

python - 如何在 BeautifulSoup 中进行身份验证?输出需要身份验证

macos - 如何从Mac/Unix上的文件夹中递归删除文件

swift - 如何清除 Swift 中的终端屏幕?

node.js - 没有用于 express/node windows 7 的命令行实用程序

c++ - 为什么从 Windows 启动时程序会运行而不是命令提示符?

java - 扫描仪不工作