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生成器实现微线程编程的教程
Apr 13 Python
Python内置数据结构与操作符的练习题集锦
Jul 01 Python
详解使用python crontab设置linux定时任务
Dec 08 Python
python 计算文件的md5值实例
Jan 13 Python
使用 Python 实现微信公众号粉丝迁移流程
Jan 03 Python
python中的内置函数max()和min()及mas()函数的高级用法
Mar 29 Python
python 读入多行数据的实例
Apr 19 Python
Django 过滤器汇总及自定义过滤器使用详解
Jul 19 Python
Pycharm 2019 破解激活方法图文详解
Oct 11 Python
python ubplot使用方法解析
Jan 10 Python
python 下载文件的几种方式分享
Apr 07 Python
Python制作表白爱心合集
Jan 22 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
SWFUpload与CI不能正确上传识别文件MIME类型解决方法分享
2011/04/18 PHP
PHP在网页中动态生成PDF文件详细教程
2014/07/05 PHP
php实用代码片段整理
2016/11/12 PHP
PHP基于自定义函数生成笛卡尔积的方法示例
2017/09/30 PHP
laravel中数据显示方法(默认值和下拉option默认选中)
2019/10/11 PHP
jquery 插件 人性化的消息显示
2008/01/21 Javascript
js程序中美元符号$是什么
2008/06/05 Javascript
当前页禁止复制粘贴截屏代码小集
2013/07/24 Javascript
javascript实现颜色渐变的方法
2013/10/30 Javascript
Nodejs Post请求报socket hang up错误的解决办法
2014/09/25 NodeJs
javascript实现dom动态创建省市纵向列表菜单的方法
2015/05/14 Javascript
javascript原型继承工作原理和实例详解
2016/04/07 Javascript
Highcharts 多个Y轴动态刷新数据的实现代码
2016/05/28 Javascript
关于JS变量和作用域详解
2016/07/28 Javascript
解决Vue编译时写在style中的路径问题
2017/09/21 Javascript
vue+iview 实现可编辑表格的示例代码
2018/10/31 Javascript
深入浅出了解Node.js Streams
2019/05/27 Javascript
JS实现页面数据懒加载
2020/02/13 Javascript
python使用beautifulsoup从爱奇艺网抓取视频播放
2014/01/23 Python
给Python入门者的一些编程建议
2015/06/15 Python
Android模拟器无法启动,报错:Cannot set up guest memory ‘android_arm’ Invalid argument的解决方法
2016/07/01 Python
Python编程实现微信企业号文本消息推送功能示例
2017/08/21 Python
Python GUI Tkinter简单实现个性签名设计
2018/06/19 Python
python 实现图片旋转 上下左右 180度旋转的示例
2019/01/24 Python
python日志通过不同的等级打印不同的颜色(示例代码)
2021/01/13 Python
美国背景检查、公共记录和人物搜索网站:BeenVerified
2018/02/25 全球购物
美国知名眼镜网站:Target Optical
2020/04/04 全球购物
应付会计岗位职责
2013/12/12 职场文书
会议活动邀请函
2014/01/27 职场文书
公司年底活动方案
2014/08/17 职场文书
绍兴鲁迅故居导游词
2015/02/09 职场文书
开学随笔
2015/08/15 职场文书
电力企业职工培训心得体会
2016/01/11 职场文书
车位出租协议书范本
2016/03/19 职场文书
前端监听websocket消息并实时弹出(实例代码)
2021/11/27 Javascript
JavaScript实现九宫格拖拽效果
2022/06/28 Javascript