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人人网登录应用实例
Sep 26 Python
Python实现将文本生成二维码的方法示例
Jul 18 Python
Python字符串拼接的几种方法整理
Aug 02 Python
tensorflow入门之训练简单的神经网络方法
Feb 26 Python
pandas数据清洗,排序,索引设置,数据选取方法
May 18 Python
不管你的Python报什么错,用这个模块就能正常运行
Sep 14 Python
Python 利用高德地图api实现经纬度与地址的批量转换
Aug 14 Python
django框架两个使用模板实例
Dec 11 Python
python3发送request请求及查看返回结果实例
Apr 30 Python
结束运行python的方法
Jun 16 Python
python 基于pygame实现俄罗斯方块
Mar 02 Python
Pygame Rect区域位置的使用(图文)
Nov 17 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
Yii 2中的load()和save()示例详解
2017/08/03 PHP
PHP扩展Swoole实现实时异步任务队列示例
2019/04/13 PHP
PHP使用CURL实现下载文件功能示例
2019/06/03 PHP
php如何把表单内容提交到数据库
2019/07/08 PHP
JavaScript Date对象使用总结
2009/05/14 Javascript
jqGrid jQuery 表格插件测试代码
2011/08/23 Javascript
JS中Iframe之间传值的方法
2013/03/11 Javascript
『jQuery』取指定url格式及分割函数应用
2013/04/22 Javascript
JS实现多物体缓冲运动实例代码
2013/11/29 Javascript
WordPress中鼠标悬停显示和隐藏评论及引用按钮的实现
2016/01/12 Javascript
轻松实现js选项卡切换效果
2016/09/24 Javascript
微信小程序 Windows2008 R2服务器配置TLS1.2方法
2016/12/05 Javascript
ES6概念 Symbol.keyFor()方法
2016/12/25 Javascript
Vue.js手风琴菜单组件开发实例
2017/05/16 Javascript
关于NodeJS中的循环引用详解
2019/07/23 NodeJs
微信小程序 select 下拉框组件功能
2019/09/09 Javascript
ES6常用小技巧总结【去重、交换、合并、反转、迭代、计算等】
2019/12/21 Javascript
vue+高德地图实现地图搜索及点击定位操作
2020/09/09 Javascript
Python是编译运行的验证方法
2015/01/30 Python
解析Python中的变量、引用、拷贝和作用域的问题
2015/04/07 Python
Python获取系统默认字符编码的方法
2015/06/04 Python
Python网络编程中urllib2模块的用法总结
2016/07/12 Python
解决django 新增加用户信息出现错误的问题
2019/07/28 Python
python 字典 setdefault()和get()方法比较详解
2019/08/07 Python
python pillow库的基础使用教程
2021/01/13 Python
Staples英国官方网站:办公用品一站式采购
2017/10/06 全球购物
西班牙拥有最佳品牌的动物商店:Animalear.com
2018/01/05 全球购物
小学毕业感言150字
2014/02/05 职场文书
《逃家小兔》教学反思
2014/02/23 职场文书
新闻发布会策划方案
2014/06/12 职场文书
销售团队获奖感言
2014/08/14 职场文书
会计继续教育培训心得体会
2016/01/19 职场文书
Java新手教程之ArrayList的基本使用
2021/06/20 Java/Android
Mysql存储过程、触发器、事件调度器使用入门指南
2022/01/22 MySQL
vue中使用mockjs配置和使用方式
2022/04/06 Vue.js
python 判断字符串当中是否包含字符(str.contain)
2022/06/01 Python