python输出缓冲区的问题
碰到的问题,一段代码,print在前,log的在后,查看日志中log的反而在前面。是python输出缓冲区的问题。
python输出缓冲区要满 4k 才写入文件,除非禁用缓存或者强制输出或者程序结束。中途 ctrl+c 中断会丢失一些输出。
#!/usr/bin/python
#coding=utf-8
'''
暂停1s输出
''' import time def printStar(n):
for i in range(n):
print " * ",
time.sleep(1) if __name__ == '__main__':
printStar(10)
等待10s后一次性输出:
* * * * * * * * * *
#!/usr/bin/python
#coding=utf-8
'''
暂停1s输出
''' import time
import sys def printStar(n):
for i in range(n):
print " * ",
sys.stdout.flush()
time.sleep(1) if __name__ == '__main__':
printStar(10)
则是一秒钟输出一个*
python程序stdout会先输出到缓冲区,等缓冲区满或者脚本结束再输出,而stderr不会先输出到缓冲区。print 会调用 sys.stdout 的 write 方法。
解决的办法:
1、运行时加-u参数,如 # python -u test.py
2、在不要缓冲的每一次print后面添加sys.stdout.flush()函数
3、添加环境变量 PYTHONUNBUFFERED=1
python输出缓冲区的问题的更多相关文章
- python 输出颜色的与样式的方法
上次遇到这个问题就想写下来,其实当时我也不怎么会,老师说这个东西不需要理解,只需要死记硬背,写的多了就记住了,所以今天搜集了几篇文章,加上自己的理解,写下了这篇python 输出颜色的样式与方法的文章 ...
- python 输出颜色与样式的方法
上次遇到这个问题就想写下来,其实当时我也不怎么会,老师说这个东西不需要理解,只需要死记硬背,写的多了就记住了,所以今天搜集了几篇文章,加上自己的理解,写下了这篇python 输出颜色的样式与方法的文章 ...
- python输出颜色与样式的方法
一.输出颜色与样式的方法 上次遇到这个问题就想写下来,其实当时我也不怎么会,老师说这个东西不需要理解,只需要死记硬背,写的多了就记住了,所以今天搜集了几篇文章,加上自己的理解,写下了这篇python ...
- PHP的输出缓冲区(转)
什么是缓冲区?简单而言,缓冲区的作用就是,把输入或者输出的内容先放进内存,而不显示或者读取.至于为什么要有缓冲区,这是一个很广泛的问题,如果有兴趣,可以在网山找下资料.其实缓冲区最本质的作用就是,协调 ...
- PHP的输出缓冲区
什么是缓冲区?简单而言,缓冲区的作用就是,把输入或者输出的内容先放进内存,而不显示或者读取.至于为什么要有缓冲区,这是一个很广泛的问题,如果有兴趣,可以在网山找下资料.其实缓冲区最本质的作用就是,协调 ...
- zlib 压缩输出缓冲区 overflow 问题
[TOC] 问题 后台服务传包太大时,我们框架可以使用 zlib 库对响应进行压缩:在这次服务调试过程中,使用 zlib compress2 以 Z_BEST_COMPRESSION 模式进行压缩时, ...
- Python 输出文件内容到网络端口
Python 输出文件内容到网络端口 $ cat mySocketTest.py import sys import time import socket if __name__ == "_ ...
- python3.4学习笔记(二十六) Python 输出json到文件,让json.dumps输出中文 实例代码
python3.4学习笔记(二十六) Python 输出json到文件,让json.dumps输出中文 实例代码 python的json.dumps方法默认会输出成这种格式"\u535a\u ...
- Python 输出百分比的两种方式
Python 输出百分比的两种方式 注: 在python3环境下测试. 方式1:直接使用参数格式化:{:.2%} {:.2%}: 显示小数点后2位 显示小数点后2位: >>> pri ...
随机推荐
- 行级锁 java||数据库
http://www.cnblogs.com/xiyubaby/p/4623516.html select * from t for update 会等待行锁释放之后,返回查询结果. select * ...
- 【BZOJ1213】高精度开根
python是坠吼的! 原题: 不贴原题,就是高精度开根,结果向下取整 首先二分答案,高精度嘛……python即可 二分右端点设为n会T掉,需要先倍增一个r,while(r **m <= n) ...
- C++中的抽象类
一.抽象类学习笔记 1.virtual修饰函数(虚函数)后面加=0就称为一个纯虚函数,一个类中只要有纯虚函数那么它就是一个抽象类.抽象类不能用来实例化对象,是用来给他的派生类定义好这些框架的,给使用这 ...
- 数据驱动 vs 关键字驱动:对搭建UI自动化测试框架的探索
UI自动化测试用例剖析 让我们先从分析一端自动化测试案例的代码开始我们的旅程.以下是我之前写的一个自动化测试的小Demo.这个Demo基于Selenium与Java.由于现在Selenium在自动化测 ...
- 21 MRO C3算法
三十九 MRO 多继承的继承顺序 一.python2.2之前用的是 经典类的MRO继承 ①深度递归继承 从左到右 ,一条路走到黑 ②广度继承 一层一层的继承 深度继承时 ...
- java JVM JRE JDK三者之间的关系
JDK在包含JRE之外,提供了开发Java应用的各种工具,比如编译器和调试器. JRE包括JVM和JAVA核心类库和支持文件,是Java的运行平台. JVM是JRE的一部分,Java虚拟机的主要工作是 ...
- vs2015重新安装后,项目属性中的目标框架中没有framework4.6.1
vs2015重新安装后,安装完后 项目属性中的目标框架中没有framework4.6.1, 控制面板的程序和功能中存在该安装包. 原因: NDP461-DevPack-KB3105179-CHS.e ...
- php Pthread 多线程基本介绍
我们可以通过安装Pthread扩展来让PHP支持多线程. 线程,有时称为轻量级进程,是程序执行的最小单元.线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,它与同属 ...
- 【java】数据类型
逻辑型boolean: boolean类型数据只能取值True或False,不可以0或者非0替代True或False,这点与c语言不同. 字符型char: 一个char类型的字符占两个字节.一个汉字也 ...
- influxDB硬件配置指南
原地址:https://docs.influxdata.com/influxdb/v1.6/guides/hardware_sizing/ 警告!此页面记录了不再积极开发的InfluxDB的早期版本. ...