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 12 Python
用Python的SimPy库简化复杂的编程模型的介绍
Apr 13 Python
浅谈scrapy 的基本命令介绍
Jun 13 Python
Python之py2exe打包工具详解
Jun 14 Python
Python基于numpy灵活定义神经网络结构的方法
Aug 19 Python
基于python代码实现简易滤除数字的方法
Jul 17 Python
使用Python实现企业微信的自动打卡功能
Apr 30 Python
np.dot()函数的用法详解
Jan 17 Python
Python3打包exe代码2种方法实例解析
Feb 17 Python
用Python在Excel里画出蒙娜丽莎的方法示例
Apr 28 Python
python搜索算法原理及实例讲解
Nov 18 Python
解决Pytorch修改预训练模型时遇到key不匹配的情况
Jun 05 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
mysql4.1以上版本连接时出现Client does not support authentication protocol问题解决办法
2007/03/15 PHP
php处理json时中文问题的解决方法
2011/04/12 PHP
php中socket的用法详解
2014/10/24 PHP
php 解析xml 的四种方法详细介绍
2016/10/26 PHP
如何让您的中波更粗更长 - 中波框形天线制作
2021/03/10 无线电
jquery prop的使用介绍及与attr的区别
2013/12/19 Javascript
判断客户浏览器是否支持cookie的示例代码
2013/12/23 Javascript
jQuery中after()方法用法实例
2014/12/25 Javascript
js实现模拟计算器退格键删除文字效果的方法
2015/05/07 Javascript
详解jQuery中的事件
2016/12/14 Javascript
关于axios返回空对象的问题解决
2017/04/04 Javascript
微信小程序 标签传入数据
2017/05/08 Javascript
vue修改vue项目运行端口号的方法
2017/08/04 Javascript
使用Vue-Router 2实现路由功能实例详解
2017/11/14 Javascript
jQuery实现常见的隐藏与展示列表效果示例
2018/06/04 jQuery
Vue Router去掉url中默认的锚点#
2018/08/01 Javascript
浅谈VUE单页应用首屏加载速度优化方案
2018/08/28 Javascript
JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【圆形情况】
2018/12/13 Javascript
JavaScript常用工具方法封装
2019/02/12 Javascript
Element实现表格分页数据选择+全选所有完善批量操作
2019/06/07 Javascript
一个手写的vue放大镜效果
2019/08/09 Javascript
微信小程序转发事件实现解析
2019/10/22 Javascript
为Python的web框架编写前端模版的教程
2015/04/30 Python
Go/Python/Erlang编程语言对比分析及示例代码
2018/04/23 Python
Python3按一定数据位数格式处理bin文件的方法
2019/01/24 Python
python 通过文件夹导入包的操作
2020/06/01 Python
Python基于traceback模块获取异常信息
2020/07/23 Python
HTML5 form标签之解放表单验证、增加文件上传、集成拖放的使用方法
2013/04/24 HTML / CSS
Osklen官方在线商店:巴西服装品牌
2019/04/25 全球购物
交通专业个人自荐信格式
2013/09/23 职场文书
函授大专自我鉴定
2013/11/01 职场文书
雷人标语集锦
2014/06/19 职场文书
含预算的公司户外活动方案
2014/08/16 职场文书
公安交警中队队长个人对照检查材料思想汇报
2014/10/05 职场文书
2015年建筑工作总结报告
2015/05/04 职场文书
SQL Server——索引+基于单表的数据插入与简单查询【1】
2021/04/05 SQL Server