我有一个 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/