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字典多键值及重复键值的使用方法(详解)
Oct 31 Python
Python实现的科学计算器功能示例
Aug 04 Python
教你使用python画一朵花送女朋友
Mar 29 Python
详解Python如何生成词云的方法
Jun 01 Python
python判断列表的连续数字范围并分块的方法
Nov 16 Python
Python使用itchat 功能分析微信好友性别和位置
Aug 05 Python
python 直接赋值和copy的区别详解
Aug 07 Python
Python Request爬取seo.chinaz.com百度权重网站的查询结果过程解析
Aug 13 Python
python基于event实现线程间通信控制
Jan 13 Python
浅析关于Keras的安装(pycharm)和初步理解
Oct 23 Python
python 实现的车牌识别项目
Jan 25 Python
Python办公自动化之Excel(中)
May 24 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
全国中波电台频率表
2020/03/11 无线电
php中使用Curl、socket、file_get_contents三种方法POST提交数据
2011/08/12 PHP
ThinkPHP3.1之D方法实例详解
2014/06/20 PHP
使用PHP实现生成HTML静态页面
2015/11/18 PHP
ThinkPHP中Widget扩展的两种写法及调用方法详解
2017/05/04 PHP
javascript两段代码,两个小技巧
2010/02/04 Javascript
如何获取网站icon有哪些可行的方法
2014/06/05 Javascript
基于jQuery的JavaScript模版引擎JsRender使用指南
2014/12/29 Javascript
举例详解JavaScript中Promise的使用
2015/06/24 Javascript
JS+CSS实现带小三角指引的滑动门效果
2015/09/22 Javascript
JQuery之proxy实现绑定代理方法
2016/08/01 Javascript
AngularJS基础 ng-copy 指令实例代码
2016/08/01 Javascript
easyui-edatagrid.js实现回车键结束编辑功能的实例
2017/04/12 Javascript
解决VUEX兼容IE上的报错问题
2018/03/01 Javascript
基于vue和websocket的多人在线聊天室
2020/02/01 Javascript
vue 使用v-for进行循环的实例代码详解
2020/02/19 Javascript
解决Vue大括号字符换行踩的坑
2020/11/09 Javascript
vue 中使用print.js导出pdf操作
2020/11/13 Javascript
梳理一下vue中的生命周期
2020/12/30 Vue.js
python实现爬取百度图片的方法示例
2019/07/06 Python
Flask框架学习笔记之路由和反向路由详解【图文与实例】
2019/08/12 Python
python 叠加等边三角形的绘制的实现
2019/08/14 Python
python SVD压缩图像的实现代码
2019/11/05 Python
html5 分层屏幕适配的方法
2018/03/16 HTML / CSS
Linux Interview Questions For software testers
2013/05/17 面试题
学生实习介绍信
2014/01/15 职场文书
纪念九一八事变83周年国旗下讲话稿
2014/09/15 职场文书
一年级班主任工作总结2014
2014/11/08 职场文书
借条格式范本
2015/05/25 职场文书
2019年图书室自查报告范本
2019/10/12 职场文书
聊聊golang中多个defer的执行顺序
2021/05/08 Golang
springboot @ConfigurationProperties和@PropertySource的区别
2021/06/11 Java/Android
MySQL外键约束(FOREIGN KEY)案例讲解
2021/08/23 MySQL
Go gRPC进阶教程gRPC转换HTTP
2022/06/16 Golang
virtualenv隔离Python环境的问题解析
2022/06/21 Python
Python TypeError: ‘float‘ object is not subscriptable错误解决
2022/12/24 Python