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中的pass语句使用方法讲解
May 14 Python
自己编程中遇到的Python错误和解决方法汇总整理
Jun 03 Python
python采用django框架实现支付宝即时到帐接口
May 17 Python
基于python OpenCV实现动态人脸检测
May 25 Python
python实现RabbitMQ的消息队列的示例代码
Nov 08 Python
Python实现的拉格朗日插值法示例
Jan 08 Python
Python读取指定日期邮件的实例
Feb 01 Python
python词云库wordCloud使用方法详解(解决中文乱码)
Feb 17 Python
解决pytorch-yolov3 train 报错的问题
Feb 18 Python
VSCode基础使用与VSCode调试python程序入门的图文教程
Mar 30 Python
Python Celery异步任务队列使用方法解析
Aug 10 Python
解决pytorch 保存模型遇到的问题
Mar 03 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
PHPMailer 中文使用说明小结
2010/01/22 PHP
PHP中UNIX时间戳和日期间的转换与计算实例
2014/11/19 PHP
基于PHP代码实现中奖概率算法可用于刮刮卡、大转盘等抽奖算法
2015/12/20 PHP
PHP 返回数组后处理方法(开户成功后弹窗提示)
2017/07/03 PHP
Laravel框架查询构造器 CURD操作示例
2019/09/04 PHP
JavaScript CSS菜单功能 改进版
2008/12/20 Javascript
jquery获取及设置outerhtml的方法
2015/03/09 Javascript
JS实现带缓冲效果打开、关闭、移动一个层的方法
2015/05/09 Javascript
jQuery实现摸拟alert提示框
2016/05/22 Javascript
JavaScript学习小结之被嫌弃的eval函数和with语句实例详解
2016/08/01 Javascript
Js得到radiobuttonlist选中值的两种方法(推荐)
2016/08/25 Javascript
node.JS md5加密中文与php结果不一致的解决方法
2017/05/05 Javascript
JS表单提交验证、input(type=number) 去三角 刷新验证码
2017/06/21 Javascript
关于vue.js组件数据流的问题
2017/07/26 Javascript
jQuery Layer弹出层传值到父页面的实现代码
2017/08/17 jQuery
Vue中v-for的数据分组实例
2018/03/07 Javascript
Vue+Element-UI实现上传图片并压缩
2019/11/26 Javascript
python计算方程式根的方法
2015/05/07 Python
Python中字符串的常见操作技巧总结
2016/07/28 Python
基于Django filter中用contains和icontains的区别(详解)
2017/12/12 Python
Python+OpenCV人脸检测原理及示例详解
2020/10/19 Python
python使用socket创建tcp服务器和客户端
2018/04/12 Python
Python学习笔记之pandas索引列、过滤、分组、求和功能示例
2019/06/03 Python
详解如何减少python内存的消耗
2019/08/09 Python
Python matplotlib图例放在外侧保存时显示不完整问题解决
2020/07/28 Python
英国皇室御用百货:福南梅森(Fortnum & Mason)
2017/12/03 全球购物
美国潜水装备、水肺潜水和浮潜设备商店:Leisure Pro
2018/08/08 全球购物
SQL里面IN比较快还是EXISTS比较快
2012/07/19 面试题
25道Java面试题集合
2013/05/21 面试题
会计应聘求职信范文
2013/12/17 职场文书
办理退休介绍信
2014/01/09 职场文书
企业安全生产演讲稿
2014/05/09 职场文书
2014年党支部承诺书
2014/05/30 职场文书
毕业生应聘求职信
2014/07/10 职场文书
义诊活动总结
2015/02/04 职场文书
SQL Server中交叉联接的用法详解
2021/04/22 SQL Server