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基于pygame实现的font游戏字体(附源码)
Nov 11 Python
python3.6+django2.0开发一套学员管理系统
Mar 03 Python
Python Xml文件添加字节属性的方法
Mar 31 Python
Python发展史及网络爬虫
Jun 19 Python
Django框架视图介绍与使用详解
Jul 18 Python
pytorch自定义初始化权重的方法
Aug 17 Python
python next()和iter()函数原理解析
Feb 07 Python
Python读取分割压缩TXT文本文件实例
Feb 14 Python
python实现从尾到头打印单链表操作示例
Feb 22 Python
基于python计算并显示日间、星期客流高峰
May 07 Python
Python还能这么玩之只用30行代码从excel提取个人值班表
Jun 05 Python
用python修改excel表某一列内容的操作方法
Jun 11 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
水质对咖图啡风味的影响具体有哪些
2021/03/03 冲泡冲煮
PHP中strnatcmp()函数“自然排序算法”进行字符串比较用法分析(对比strcmp函数)
2016/01/07 PHP
Zend Framework教程之资源(Resources)用法实例详解
2016/03/14 PHP
PHP版微信小店接口开发实例
2016/11/12 PHP
对php 判断http还是https,以及获得当前url的方法详解
2019/01/15 PHP
jquery+ashx无刷新GridView数据显示插件(实现分页、排序、过滤功能)
2010/04/25 Javascript
js正则表达式replace替换变量方法
2016/05/21 Javascript
ionic js 模型 $ionicModal 可以遮住用户主界面的内容框
2016/06/06 Javascript
jQuery基于ID调用指定iframe页面内的方法
2016/07/06 Javascript
jQuery图片轮播(二)利用构造函数和原型创建对象以实现继承
2016/12/06 Javascript
jQuery插件HighCharts实现的2D对数饼图效果示例【附demo源码下载】
2017/03/09 Javascript
详解用vue-cli来搭建vue项目和webpack
2017/04/20 Javascript
nodejs实现的简单web服务器功能示例
2018/03/15 NodeJs
VeeValidate在vue项目里表单校验应用案例
2018/05/09 Javascript
使用Angular Cli如何创建Angular私有库详解
2019/01/30 Javascript
vue-cli3环境变量与分环境打包的方法示例
2019/02/18 Javascript
vue实现修改图片后实时更新
2019/11/14 Javascript
node.js +mongdb实现登录功能
2020/06/18 Javascript
Python实现子类调用父类的方法
2014/11/10 Python
pandas读取csv文件,分隔符参数sep的实例
2018/12/12 Python
Python下应用opencv 实现人脸检测功能
2019/10/24 Python
Python中bisect的用法及示例详解
2020/07/20 Python
通过一张图教会你CSS3倒影的实现
2017/09/26 HTML / CSS
HTML5 input元素类型:email及url介绍
2013/08/13 HTML / CSS
Html5在手机端调用相机的方法实现
2020/05/13 HTML / CSS
工艺工程师工作职责
2013/11/23 职场文书
档案接收函范文
2014/01/10 职场文书
党员组织关系介绍信
2014/02/13 职场文书
讲文明树新风公益广告宣传方案
2014/02/25 职场文书
社会实践活动总结报告
2014/04/29 职场文书
计划生育诚信协议书
2014/11/02 职场文书
张丽莉事迹观后感
2015/06/16 职场文书
少年的你:世界上没有如果,要在第一次就勇敢的反抗
2019/11/20 职场文书
解析MySQL binlog
2021/06/11 MySQL
图文详解Nginx版本平滑升级方案
2021/09/15 Servers
Golang 并发编程 SingleFlight模式
2022/04/26 Golang