python命令 -u参数用法解析


Posted in Python onOctober 24, 2019

这篇文章主要介绍了python命令 -u参数用法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

在shell脚本中运行python 命令时后面加了-u 参数(python -u xx.py),这个-u表示什么?

import sys
sys.stdout.write("stdout1")
sys.stderr.write("stderr1")
sys.stdout.write("stdout2")
sys.stderr.write("stderr2")

其中sys.stdout.write()和sys.stderr.write()均是向屏幕打印的语句。其实python中的print语句就是调用了sys.stdout.write(),例如在打印对象调用print obj 时,事实上是调用了 sys.stdout.write(obj+'\n')。

预想的结果是

stdout1stderr1stdout2stderr2

实际的结果为

stderr1stderr2stdout1stdout2

原因是python缓存机制,虽然stderr和stdout默认都是指向屏幕的,但是stderr是无缓存的,程序往stderr输出一个字符,就会在屏幕上显示一个;而stdout是有缓存的,只有遇到换行或者积累到一定的大小,才会显示出来。这就是为什么上面的会最先显示两个stderr的原因。

重点-

  • -u参数的使用:python命令加上-u(unbuffered)参数后会强制其标准输出也同标准错误一样不通过缓存直接打印到屏幕。
    • 运行结果:stdout1stderr1stdout2stderr2

  • 注意:以上结果是在python2下执行实现的,本人也在python3下进行了测试,python3下即便加上-u或者加上环境变量UNBUFFERED=1 运行起来stdout依旧写缓存(执行结果stderr1stderr2stdout1stdout2),具体原因没搞清,后续搞清后再来更新。

通过以上分析,不难看出尤其是在将python执行脚本输出到屏幕结果直接重定向到日志文件的情况下,使用-u参数,这样将标准输出的结果不经缓存直接输出到日志文件。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python解析html开发库pyquery使用方法
Feb 07 Python
Python程序中使用SQLAlchemy时出现乱码的解决方案
Apr 24 Python
numpy中实现二维数组按照某列、某行排序的方法
Apr 04 Python
python3解析库pyquery的深入讲解
Jun 26 Python
python实现列表中最大最小值输出的示例
Jul 09 Python
python图像处理模块Pillow的学习详解
Oct 09 Python
python 实现多线程下载m3u8格式视频并使用fmmpeg合并
Nov 15 Python
Python input函数使用实例解析
Nov 22 Python
QML实现钟表效果
Jun 02 Python
Python下使用Trackbar实现绘图板
Oct 27 Python
基于OpenCV的网络实时视频流传输的实现
Nov 15 Python
python中Mako库实例用法
Dec 31 Python
使用python制作游戏下载进度条的代码(程序说明见注释)
Oct 24 #Python
用Python解数独的方法示例
Oct 24 #Python
Python3 sys.argv[ ]用法详解
Oct 24 #Python
window7下的python2.7版本和python3.5版本的opencv-python安装过程
Oct 24 #Python
原生python实现knn分类算法
Oct 24 #Python
python KNN算法实现鸢尾花数据集分类
Oct 24 #Python
python爬虫爬取幽默笑话网站
Oct 24 #Python
You might like
php中文本操作的类
2007/03/17 PHP
不错的PHP学习之php4与php5之间会穿梭一点点感悟
2007/05/03 PHP
PHP无限分类代码,支持数组格式化、直接输出菜单两种方式
2011/05/18 PHP
Laravel中9个不经常用的小技巧汇总
2019/04/16 PHP
Jquery EasyUI实现treegrid上显示checkbox并取选定值的方法
2016/04/29 Javascript
JS上传图片预览插件制作(兼容到IE6)
2016/08/07 Javascript
VueJs与ReactJS和AngularJS的异同点
2016/12/12 Javascript
浅谈struts1 & jquery form 文件异步上传
2017/05/25 jQuery
jquery animate动画持续运动的实例
2017/11/29 jQuery
监听angularJs列表数据是否渲染完毕的方法示例
2018/11/07 Javascript
微信小程序事件对象中e.target和e.currentTarget的区别详解
2019/05/08 Javascript
实用的Vue开发技巧
2019/05/30 Javascript
JS实现动态添加外部js、css到head标签的方法
2019/06/05 Javascript
vue 组件内获取actions的response方式
2019/11/08 Javascript
[38:30]2014 DOTA2国际邀请赛中国区预选赛 LGD-GAMING VS CIS 第一场2
2014/05/24 DOTA
[00:06]Yes,it worked!小卡尔成功穿越时空加入战场!
2019/07/20 DOTA
python回溯法实现数组全排列输出实例分析
2015/03/17 Python
判断网页编码的方法python版
2016/08/12 Python
Python中进程和线程的区别详解
2017/10/29 Python
python字符串常用方法
2018/06/14 Python
Python字典的核心底层原理讲解
2019/01/24 Python
Python socket模块实现的udp通信功能示例
2019/04/10 Python
Django模板语言 Tags使用详解
2019/09/09 Python
python使用gdal对shp读取,新建和更新的实例
2020/03/10 Python
python进度条显示之tqmd模块
2020/08/22 Python
CSS3实现瀑布流布局与无限加载图片相册的实例代码
2016/12/22 HTML / CSS
elf彩妆英国官网:e.l.f. Cosmetics英国(美国平价彩妆品牌)
2017/11/02 全球购物
eBay爱尔兰站:eBay.ie
2019/08/09 全球购物
五一家具促销方案
2014/01/10 职场文书
数学检讨书1000字
2014/02/24 职场文书
写给老师的感谢信
2015/01/20 职场文书
期中考试后的感想
2015/08/07 职场文书
2015教师个人师德工作总结
2015/10/23 职场文书
2016特色励志班级口号
2015/12/24 职场文书
《认识钟表》教学反思
2016/02/16 职场文书
MySQL中in和exists区别详解
2021/06/03 MySQL