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 相关文章推荐
django轻松使用富文本编辑器CKEditor的方法
Mar 30 Python
Python random模块用法解析及简单示例
Dec 18 Python
windows下python 3.6.4安装配置图文教程
Aug 21 Python
在Python中输入一个以空格为间隔的数组方法
Nov 13 Python
详解python3 + Scrapy爬虫学习之创建项目
Apr 12 Python
opencv导入头文件时报错#include的解决方法
Jul 31 Python
windows下Python安装、使用教程和Notepad++的使用教程
Oct 06 Python
利用Python代码实现一键抠背景功能
Dec 29 Python
nginx搭建基于python的web环境的实现步骤
Jan 03 Python
Python文件时间操作步骤代码详解
Apr 13 Python
详解Python之Scrapy爬虫教程NBA球员数据存放到Mysql数据库
Jan 24 Python
Python爬虫分析微博热搜关键词的实现代码
Feb 22 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 深入理解strtotime函数的使用详解
2013/05/23 PHP
PHP预定义变量9大超全局数组用法详解
2016/04/23 PHP
利用Ext Js生成动态树实例代码
2008/09/08 Javascript
JavaScript是否可实现多线程  深入理解JavaScript定时机制
2009/12/22 Javascript
Javascript图像处理—平滑处理实现原理
2012/12/28 Javascript
JS打印gridview实现原理及代码
2013/02/05 Javascript
加载远程图片时,经常因为缓存而得不到更新的解决方法(分享)
2013/06/26 Javascript
js 实现 input type="file" 文件上传示例代码
2013/08/07 Javascript
在JS中解析HTML字符串示例代码
2014/04/16 Javascript
JavaScript判断textarea值是否为空并给出相应提示
2014/09/04 Javascript
纯js实现瀑布流布局及ajax动态新增数据
2016/04/07 Javascript
Vue2学习笔记之请求数据交互vue-resource
2017/02/23 Javascript
nodejs之get/post请求的几种方式小结
2017/07/26 NodeJs
vue中组件的过渡动画及实现代码
2018/11/21 Javascript
vue-better-scroll 的使用实例代码详解
2018/12/03 Javascript
原生js+canvas实现贪吃蛇效果
2020/08/02 Javascript
[02:35]DOTA2超级联赛专访XB 难忘一年九冠称王
2013/06/20 DOTA
详解在Python程序中解析并修改XML内容的方法
2015/11/16 Python
Python使用functools模块中的partial函数生成偏函数
2016/07/02 Python
浅谈python中拼接路径os.path.join斜杠的问题
2018/10/23 Python
浅谈pycharm下找不到sqlalchemy的问题
2018/12/03 Python
Python socket实现多对多全双工通信的方法
2019/02/13 Python
Pytorch之保存读取模型实例
2019/12/30 Python
python数据预处理 :数据共线性处理详解
2020/02/24 Python
浅谈html5 video 移动端填坑记
2018/01/15 HTML / CSS
加拿大在线隐形眼镜和眼镜店:VisionPros
2019/10/06 全球购物
加拿大领先的时尚和体育零售商:Sporting Life
2019/12/15 全球购物
广告学专业推荐信范文
2013/11/23 职场文书
2014道德模范事迹材料
2014/02/16 职场文书
慰问敬老院活动总结
2014/04/26 职场文书
五心教育心得体会
2014/09/04 职场文书
贫困证明模板(3篇)
2014/09/16 职场文书
反四风个人对照检查材料
2014/09/26 职场文书
2014年作风建设心得体会
2014/10/22 职场文书
小班下学期幼儿评语
2014/12/30 职场文书
2015年公民道德宣传日活动总结
2015/03/23 职场文书