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使用PIL库实现验证码图片的方法
Mar 11 Python
Python微信企业号开发之回调模式接收微信端客户端发送消息及被动返回消息示例
Aug 21 Python
Windows下的Python 3.6.1的下载与安装图文详解(适合32位和64位)
Feb 21 Python
numpy中实现ndarray数组返回符合特定条件的索引方法
Apr 17 Python
python中join()方法介绍
Oct 11 Python
Python3中在Anaconda环境下安装basemap包
Oct 21 Python
使用Py2Exe for Python3创建自己的exe程序示例
Oct 31 Python
Python实现数据结构线性链表(单链表)算法示例
May 04 Python
Django实现前台上传并显示图片功能
May 29 Python
如何快速一次性卸载所有python包(第三方库)呢
Oct 20 Python
python如何编写类似nmap的扫描工具
Nov 06 Python
selenium与xpath之获取指定位置的元素的实现
Jan 26 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
thinkphp框架下实现登录、注册、找回密码功能
2016/04/06 PHP
浅谈PHP中的错误处理和异常处理
2017/02/04 PHP
php5.x禁用eval的操作方法
2018/10/19 PHP
JavaScript 闭包在封装函数时的简单分析
2009/11/28 Javascript
jQuery.Autocomplete实现自动完成功能(详解)
2010/07/13 Javascript
jQuery之浮动窗口实现代码(两种方法)
2010/09/08 Javascript
服务器端的JavaScript脚本 Node.js 使用入门
2012/03/07 Javascript
简略说明Javascript中的= =(等于)与= = =(全等于)区别
2013/04/16 Javascript
使用js操作cookie的一点小收获分享
2013/09/03 Javascript
javascript从image转换为base64位编码的String
2014/07/29 Javascript
使用Nodejs开发微信公众号后台服务实例
2014/09/03 NodeJs
防止Node.js中错误导致进程阻塞的办法
2016/08/11 Javascript
AngularJS包括详解及示例代码
2016/08/17 Javascript
Angularjs验证用户输入的字符串是否为日期时间
2017/06/01 Javascript
详解vue渲染从后台获取的json数据
2017/07/06 Javascript
vue实现样式之间的切换及vue动态样式的实现方法
2017/12/19 Javascript
JavaScript常用数学函数用法示例
2018/05/14 Javascript
Python2中文处理纪要的实现方法
2018/03/10 Python
Python读取指定日期邮件的实例
2019/02/01 Python
Django ORM多对多查询方法(自定义第三张表&ManyToManyField)
2019/08/09 Python
python中sort和sorted排序的实例方法
2019/08/26 Python
AUC计算方法与Python实现代码
2020/02/28 Python
利用python绘制中国地图(含省界、河流等)
2020/09/21 Python
HTML5新增元素如何兼容旧浏览器有哪些方法
2014/05/09 HTML / CSS
网站域名和主机:Domain.com
2019/04/01 全球购物
印度在线购物网站:Paytmmall
2019/07/24 全球购物
JAVA高级程序员面试题
2013/09/06 面试题
毕业生找工作的自我评价
2013/10/18 职场文书
施工班组长岗位职责
2014/01/05 职场文书
宿舍卫生检讨书
2014/01/16 职场文书
人力资源主管职责范本
2014/03/05 职场文书
保护动物的标语
2014/06/11 职场文书
社区党建工作汇报材料
2014/08/14 职场文书
三八妇女节超市活动方案
2014/08/18 职场文书
微信小程序实现拍照和相册选取图片
2021/05/09 Javascript
Java实现聊天机器人完善版
2021/07/04 Java/Android