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程序语言快速上手教程
Jul 18 Python
详解Python开发中如何使用Hook技巧
Nov 01 Python
Scrapy抓取京东商品、豆瓣电影及代码分享
Nov 23 Python
python matlibplot绘制3D图形
Jul 02 Python
用Python逐行分析文件方法
Jan 28 Python
11个Python3字典内置方法大全与示例汇总
May 13 Python
在Python3 numpy中mean和average的区别详解
Aug 24 Python
python自动结束mysql慢查询会话的实例代码
Oct 27 Python
Python基础之高级变量类型实例详解
Jan 03 Python
Pycharm新手使用教程(图文详解)
Sep 17 Python
详解修改Anaconda中的Jupyter Notebook默认工作路径的三种方式
Jan 24 Python
Python一些基本的图像操作和处理总结
Jun 23 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/11/25 PHP
php目录操作实例代码
2014/02/21 PHP
PHP文件大小格式化函数合集
2014/03/10 PHP
微信公众平台开发(五) 天气预报功能开发
2016/12/03 PHP
Laravel5.1 框架路由基础详解
2020/01/04 PHP
收藏一些不常用,但是有用的代码
2007/03/12 Javascript
JavaScript之编码规范 推荐
2012/05/23 Javascript
JavaScript作用域链使用介绍
2013/08/29 Javascript
JavaScript中神奇的call()方法
2015/03/12 Javascript
javascript中错误使用var造成undefined
2016/03/31 Javascript
Spring MVC中Ajax实现二级联动的简单实例
2016/07/06 Javascript
[原创]jQuery常用的4种加载方式分析
2016/07/25 Javascript
使用bootstrap validator的remote验证代码经验分享(推荐)
2016/09/21 Javascript
javascript获取以及设置光标位置
2017/02/16 Javascript
React+react-dropzone+node.js实现图片上传的示例代码
2017/08/23 Javascript
实例介绍JavaScript中多种组合继承
2019/01/20 Javascript
vue插件mescroll.js实现移动端上拉加载和下拉刷新
2019/03/07 Javascript
jQuery ajax仿Google自动提示SearchSuggess功能示例
2019/03/28 jQuery
JS回调函数 callback的理解与使用案例分析
2019/09/09 Javascript
vue父组件给子组件的组件传值provide inject的方法
2019/10/23 Javascript
让python 3支持mysqldb的解决方法
2017/02/14 Python
Python使用tkinter库实现文本显示用户输入功能示例
2018/05/30 Python
Python实现爬虫从网络上下载文档的实例代码
2018/06/13 Python
对Pytorch中nn.ModuleList 和 nn.Sequential详解
2019/08/18 Python
python实现堆排序的实例讲解
2020/02/21 Python
Html5 语法与规则简要概述
2014/07/29 HTML / CSS
Sneaker Studio捷克:购买运动鞋
2018/07/08 全球购物
急诊科护士自我鉴定
2013/10/14 职场文书
北京大学自荐信范文
2014/01/28 职场文书
《充气雨衣》教学反思
2014/04/07 职场文书
在宿舍喝酒的检讨书
2014/09/28 职场文书
2014幼儿园小班工作总结
2014/11/10 职场文书
挂靠协议书
2015/01/27 职场文书
歌咏比赛主持词
2015/06/29 职场文书
初中英语教学反思范文
2016/02/15 职场文书
年终工作总结范文
2019/06/20 职场文书