美文网首页
python刷新缓冲区

python刷新缓冲区

作者: 谷和阿秋 | 来源:发表于2018-04-17 15:31 被阅读0次

引言

在公司的大促活动中写了一段python脚本,在执行过程中发现一个问题,就是使用tail -f ***.log并不能实时刷新,这样就完全不知道脚本的执行情况了。观察了一下,发现log文件中过一段时间终于出现数据,于是推断这是因为缓冲区的原因。

举个例子,如下一段脚本,

import time

n = 0
for i in range(10000000000):
    n += 1
    print(n)
    time.sleep(0.1)

执行命令,

python3 test.py > log &
tail -f log

可以发现log中迟迟没有结果,但是很显然我们是print的,这就是缓冲区未刷新的原因了。

解决方案

方法一

我们可以使用sys模块中的sys.stdout.flush()函数来强制刷新缓冲区

import sys
import time

n = 0
for i in range(10000000000):
    n += 1
    print(n)
    sys.stdout.flush()
    time.sleep(0.1)

方法二

在python执行命令中添加-u参数

python3 -u test.py

相关文章

  • python刷新缓冲区

    引言 在公司的大促活动中写了一段python脚本,在执行过程中发现一个问题,就是使用tail -f ***.log...

  • 5、响应输出

    write 将chunk数据写到输出缓冲区。 缓冲区数据刷新到浏览器是由socket来控制。 缓冲区刷新的几种方式...

  • endl 刷新输出缓冲区

    以下情况会引发缓冲区的刷新: 缓冲区满时; 执行 flush 语句; 执行 endl 语句; 关闭文件。 endl...

  • linux printf 不立即显示

    1.加上\n换行符,使得缓冲区立即输出 2. fflush(stdout); // 刷新一下缓冲区 让它马上输出....

  • jsp的缓冲机制

    jsp页面有缓冲机制,只有下面4种情况之一满足才会向浏览器输出内容 1.缓冲区满了2.刷新缓冲区3.关闭缓冲区4....

  • Kafka Connect ElasticSearch常见参数与

    作者:Arnold 缓冲区与刷新时长的配置 max.buffered.records(默认值 20000)The ...

  • IO流中flush()和close()方法的区别

    IO流笔记: flush()方法 -----刷新该流的缓冲区,但并没有关闭该流,刷新之后还可以继续使用该流对象进行...

  • Java文件流中的flush和close方法区别

    flush()方法 它的意思是刷新缓冲区,仅仅就是刷新,并不会关闭流对象。 close()方法 它的意思是关闭流对...

  • 基于Python的缓冲区分析

    (个人微信号361318358) 前段时间有朋友问破解后的ArcGIS做缓冲区时总是失败,想到Python做缓冲区...

  • Python3 下 Buffer Overflow Badcha

    Python3 下 检测 badchars 时,缓冲区出现 C2 字符 解决: Python3 编码问题,试过 ...

网友评论

      本文标题:python刷新缓冲区

      本文链接:https://www.haomeiwen.com/subject/ssfpkftx.html