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操作xml文件详细介绍
Jun 09 Python
python中while循环语句用法简单实例
May 07 Python
Linux 下 Python 实现按任意键退出的实现方法
Sep 25 Python
如何在Python函数执行前后增加额外的行为
Oct 20 Python
python机器学习之神经网络实现
Oct 13 Python
python 读取文件并把矩阵转成numpy的两种方法
Feb 12 Python
Django中使用CORS实现跨域请求过程解析
Aug 05 Python
用python实现英文字母和相应序数转换的方法
Sep 18 Python
Django 简单实现分页与搜索功能的示例代码
Nov 07 Python
django Layui界面点击弹出对话框并请求逻辑生成分页的动态表格实例
May 12 Python
python 瀑布线指标编写实例
Jun 03 Python
详解pycharm连接远程linux服务器的虚拟环境的方法
Nov 13 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制作静态网站的模板框架
2006/10/09 PHP
PHP学习笔记 (1) 环境配置与代码调试
2011/06/19 PHP
php数组函数序列之in_array() 查找数组值是否存在
2011/10/29 PHP
最新的10款jQuery内容滑块插件分享
2011/09/18 Javascript
js判断游览器类型及版本号的代码
2014/05/11 Javascript
jQuery中的height innerHeight outerHeight区别示例介绍
2014/06/15 Javascript
Jquery幻灯片特效代码分享--打开页面随机选择切换方式(3)
2015/08/15 Javascript
JavaScript验证Email(3种方法)
2015/09/21 Javascript
详解页面滚动值scrollTop在FireFox与Chrome浏览器间的兼容问题
2015/12/03 Javascript
微信小程序 生命周期详解
2016/10/12 Javascript
AngularJS自定义服务与fliter的混合使用
2016/11/24 Javascript
微信小程序五星评分效果实现代码
2017/04/06 Javascript
react.js CMS 删除功能的实现方法
2017/04/17 Javascript
inner join 内联与left join 左联的实例代码
2017/09/18 Javascript
原生JS上传大文件显示进度条 php上传文件代码
2020/03/27 Javascript
nodejs分离html文件里面的js和css的方法
2019/04/09 NodeJs
5分钟教你用nodeJS手写一个mock数据服务器的方法
2019/09/10 NodeJs
JS深入学习之数组对象排序操作示例
2020/05/01 Javascript
[14:57]DOTA2 HEROS教学视频教你分分钟做大人-幽鬼
2014/06/13 DOTA
python操作xml文件详细介绍
2014/06/09 Python
Python 含参构造函数实例详解
2017/05/25 Python
Flask解决跨域的问题示例代码
2018/02/12 Python
用python建立两个Y轴的XY曲线图方法
2019/07/08 Python
Python-opencv 双线性插值实例
2020/01/17 Python
离线状态下在jupyter notebook中使用plotly实例
2020/04/24 Python
AmazeUI 评论列表的实现示例
2020/08/13 HTML / CSS
为女性购买传统的印度服装和婚纱:Kalkifashion
2019/07/22 全球购物
文秘个人求职信范文
2014/04/22 职场文书
先进事迹材料范文
2014/12/29 职场文书
2015年教师节演讲稿范文
2015/03/19 职场文书
党内外群众意见范文
2015/06/02 职场文书
初中同学会致辞
2015/08/01 职场文书
初中语文教学研修日志
2015/11/13 职场文书
pygame面向对象的飞行小鸟实现(Flappy bird)
2021/04/01 Python
在python中实现导入一个需要传参的模块
2021/05/12 Python
剖析后OpLog订阅MongoDB的数据变更就没那么难了
2022/02/24 MongoDB