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 时间戳与格式化时间的转化实现代码
Mar 23 Python
Python3 加密(hashlib和hmac)模块的实现
Nov 23 Python
Flask入门之上传文件到服务器的方法示例
Jul 18 Python
selenium+python自动化测试之使用webdriver操作浏览器的方法
Jan 23 Python
python基于FTP实现文件传输相关功能代码实例
Sep 28 Python
Python上下文管理器全实例详解
Nov 12 Python
Python 多线程共享变量的实现示例
Apr 17 Python
解决Python spyder显示不全df列和行的问题
Apr 20 Python
python模拟斗地主发牌
Apr 22 Python
Python实现图片指定位置加图片水印(附Pyinstaller打包exe)
Mar 04 Python
Python爬虫基础之爬虫的分类知识总结
May 13 Python
Python中Selenium对Cookie的操作方法
Jul 09 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 删除cookie和浏览器重定向
2009/03/16 PHP
PHP echo,print,printf,sprintf函数之间的区别与用法详解
2013/11/27 PHP
php全角字符转换为半角函数
2014/02/07 PHP
PHP中使用socket方式GET、POST数据实例
2015/04/02 PHP
Yii2压缩PHP中模板代码的输出问题
2018/08/28 PHP
php使用pthreads v3多线程实现抓取新浪新闻信息操作示例
2020/02/21 PHP
Z-Blog中用到的js代码
2007/03/15 Javascript
JS中实现replaceAll的方法(实例代码)
2013/11/12 Javascript
DOM节点深度克隆函数cloneNode()用法实例
2015/01/12 Javascript
jQuery实现精美的多级下拉菜单特效
2015/03/14 Javascript
Node.js中防止错误导致的进程阻塞的方法
2016/08/11 Javascript
浅谈jQuery before和insertBefore的区别
2016/12/04 Javascript
JavaScript实现图片瀑布流和底部刷新
2017/01/02 Javascript
Node.JS中快速扫描端口并发现局域网内的Web服务器地址(80)
2017/09/18 Javascript
简单谈谈js的数据类型
2017/09/25 Javascript
Angular实现类似博客评论的递归显示及获取回复评论的数据
2017/11/06 Javascript
浅析从vue源码看观察者模式
2018/01/29 Javascript
Vue微信公众号网页分享的示例代码
2020/05/28 Javascript
详尽讲述用Python的Django框架测试驱动开发的教程
2015/04/22 Python
Python中关于使用模块的基础知识
2015/05/24 Python
深入理解Python中的*重复运算符
2017/10/28 Python
python导出chrome书签到markdown文件的实例代码
2017/12/27 Python
如何通过雪花算法用Python实现一个简单的发号器
2019/07/03 Python
python对矩阵进行转置的2种处理方法
2019/07/17 Python
使用TensorFlow对图像进行随机旋转的实现示例
2020/01/20 Python
python——全排列数的生成方式
2020/02/26 Python
Python代码覆盖率统计工具coverage.py用法详解
2020/11/25 Python
CSS3制作炫酷带方向感应的鼠标滑过图片3D动画
2016/03/16 HTML / CSS
HTML5实现多张图片上传功能
2016/03/11 HTML / CSS
师范生的个人求职信范文
2014/01/04 职场文书
学习十八大的心得体会
2014/09/12 职场文书
2014高中生入党思想汇报范文
2014/09/13 职场文书
2014年党小组工作总结
2014/12/20 职场文书
事业单位岗位说明书
2015/10/08 职场文书
为什么阅读对所有年龄段的孩子都很重要?
2019/07/08 职场文书
Nginx报错104:Connection reset by peer问题的解决及分析
2022/07/23 Servers