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之eval()函数危险性浅析
Jul 03 Python
Python查找相似单词的方法
Mar 05 Python
Python中利用xpath解析HTML的方法
May 14 Python
django 在原有表格添加或删除字段的实例
May 27 Python
python排序函数sort()与sorted()的区别
Sep 18 Python
python 函数内部修改外部变量的方法
Dec 18 Python
PyQT实现菜单中的复制,全选和清空的功能的方法
Jun 17 Python
Django中celery执行任务结果的保存方法
Jul 12 Python
Python各种扩展名区别点整理
Feb 27 Python
Python爬虫新手入门之初学lxml库
Dec 20 Python
利用Matlab绘制各类特殊图形的实例代码
Jul 16 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
PHP语法速查表
2007/01/02 PHP
解析php中eclipse 用空格替换 tab键
2013/06/24 PHP
PHP 接入微信扫码支付总结(总结篇)
2016/11/03 PHP
PHP简单实现遍历目录下特定文件的方法小结
2017/05/22 PHP
php+ajax实现仿百度查询下拉内容功能示例
2017/10/20 PHP
php7新特性的理解和比较总结
2019/04/14 PHP
JavaScript Chart 插件整理
2010/06/18 Javascript
JS 控件事件小结
2012/10/31 Javascript
javascript获取所有同类checkbox选项(实例代码)
2013/11/07 Javascript
js this函数调用无需再次抓获id,name或标签名
2014/03/03 Javascript
JS调用页面表格导出excel示例代码
2014/03/18 Javascript
jquery制作 随机弹跳的小球特效
2015/02/01 Javascript
图解JavaScript中的this关键字
2020/05/28 Javascript
Bootstrap编写一个同时适用于PC、平板、手机的登陆页面
2016/06/30 Javascript
vue-cli+webpack在生成的项目中使用bootstrap实例代码
2017/05/26 Javascript
jquery鼠标悬停导航下划线滑出效果
2017/09/29 jQuery
angular2 ng2 @input和@output理解及示例
2017/10/10 Javascript
ES6与CommonJS中的模块处理的区别
2018/06/13 Javascript
详解webpack-dev-server使用方法
2018/09/14 Javascript
Vue的生命周期操作示例
2019/09/17 Javascript
Vue实现导航栏的显示开关控制
2019/11/01 Javascript
一文秒懂JavaScript构造函数、实例、原型对象以及原型链
2020/08/25 Javascript
常用python数据类型转换函数总结
2014/03/11 Python
Python中遇到的小问题及解决方法汇总
2017/01/11 Python
python flask实现分页效果
2017/06/27 Python
Python3实现转换Image图片格式
2018/06/21 Python
Python Grid使用和布局详解
2018/06/30 Python
Python实现矩阵相乘的三种方法小结
2018/07/26 Python
简单几步用纯CSS3实现3D翻转效果
2019/01/17 HTML / CSS
店长岗位职责
2015/02/11 职场文书
财务工作失误检讨书
2015/02/19 职场文书
一文搞懂php的垃圾回收机制
2021/06/18 PHP
Nginx性能优化之Gzip压缩设置详解(最大程度提高页面打开速度)
2022/02/12 Servers
《吸血鬼:避世 血猎》官宣4.27发售 系列首款大逃杀
2022/04/03 其他游戏
MongoDB支持的数据类型
2022/04/11 MongoDB
Python 统计序列中元素的出现频度
2022/04/26 Python