Python 命令 -u 参数作用

简介: Python 命令 -u 参数作用
  • shell 脚本中运行 python 命令时后面加了 -u 参数,例如:python -u xx.py,这个 -u 表示什么?
  • 标准输出:sys.stdout.write()标准错误:sys.stderr.write() 均是向屏幕打印的语句。
    print 语句也就是调用了 sys.stdout.write()print(obj) 实质上调用的是 sys.stdout.write(obj+'\n')print 在打印时会自动加个换行符,以下两行等价:
sys.stdout.write('hello'+'\n')
print 'hello'
  • 举例
import sys
sys.stdout.write("sdo-1 ")
sys.stderr.write("sde-1 ")
sys.stdout.write("sdo-2 ")
sys.stderr.write("sde-2 ")
  • 上面输出 预想 的结果为:sdo-1 sde-1 sdo-2 sde-2
  • 上面输出 实际 的结果为:sde-1 sde-2 sdo-1 sdo-2
  • 原因是 python 缓存机制,虽然 stderrstdout 默认都是指向屏幕的,但是 stderr 是无缓存的,程序往 stderr 输出一个字符,就会在屏幕上显示一个。
  • stdout 是有缓存的,只有遇到换行或者积累到一定的大小,才会显示出来。这就是为什么上面的会最先显示两个 stderr 的原因。
  • -u参数的使用
  • 使用:python -u xx.py
  • 有了上面的案例,就可以引出 python-u 参数了,python 命令加上 -u(unbuffered) 参数后会强制其 标准输出 也同 标准错误 一样 不通过缓存 直接打印到屏幕。
  • 再次执行得到的结果:sdo-1 sde-1 sdo-2 sde-2,就变成预期结果了。
  • print 函数的 flush 参数,使用 flush=True 之后,会在 print 结束之后,不管有没有达到条件,立即将内存中的东西显示到屏幕上,清空缓存:
print('dzm', flush=True
  • stdout.flush() 函数也有此效果:
import sys
sys.stdout.write('dzm')
sys.stdout.flush()
相关文章
|
30天前
|
安全 网络安全 文件存储
思科设备巡检命令Python脚本大集合
【10月更文挑战第18天】
69 1
思科设备巡检命令Python脚本大集合
|
1月前
|
存储 人工智能 开发工具
AI助理化繁为简,速取代码参数——使用python SDK 处理OSS存储的图片
只需要通过向AI助理提问的方式输入您的需求,即可瞬间获得核心流程代码及参数,缩短学习路径、提升开发效率。
1433 4
AI助理化繁为简,速取代码参数——使用python SDK 处理OSS存储的图片
|
1月前
|
Python
Python PDB命令介绍
【10月更文挑战第15天】 使用PDB的方式有两种,其中一种是在脚本中添加代码,不觉得这种方式比print好在哪里,所以这种方式此文不表。这里我们只学习PDB的命令行使用方式
42 4
|
1月前
|
机器学习/深度学习 缓存 PyTorch
pytorch学习一(扩展篇):miniconda下载、安装、配置环境变量。miniconda创建多版本python环境。整理常用命令(亲测ok)
这篇文章是关于如何下载、安装和配置Miniconda,以及如何使用Miniconda创建和管理Python环境的详细指南。
392 0
pytorch学习一(扩展篇):miniconda下载、安装、配置环境变量。miniconda创建多版本python环境。整理常用命令(亲测ok)
|
1月前
|
Java 程序员 C++
【Python】链式、嵌套调用、递归、函数栈帧、参数默认值和关键字参数
【Python】链式、嵌套调用、递归、函数栈帧、参数默认值和关键字参数
25 0
【Python】链式、嵌套调用、递归、函数栈帧、参数默认值和关键字参数
|
1月前
|
存储 C++ Python
[oeasy]python037_ print函数参数_sep分隔符_separator
本文介绍了Python中`print`函数的`sep`参数,即分隔符。通过回顾上文内容,解释了类型与`type`的概念,并强调了参数类型的重要性。文章详细探讨了`print`函数如何使用`sep`参数来分隔输出值,默认分隔符为空格(序号32)。还讨论了如何修改分隔符为其他字符,如冒号,并解释了为何反斜杠需要使用双反斜杠表示。最后,文章追溯了`sep`名称的由来,以及相关词汇的历史背景,如盎格鲁-萨克逊人的武器和语言。
36 0
|
2月前
|
机器学习/深度学习 Shell 开发工具
Python使用管道执行git命令报错|4-7
Python使用管道执行git命令报错|4-7
|
1月前
|
机器学习/深度学习 缓存 Linux
python环境学习:pip介绍,pip 和 conda的区别和联系。哪个更好使用?pip创建虚拟环境并解释venv模块,pip的常用命令,conda的常用命令。
本文介绍了Python的包管理工具pip和环境管理器conda的区别与联系。pip主要用于安装和管理Python包,而conda不仅管理Python包,还能管理其他语言的包,并提供强大的环境管理功能。文章还讨论了pip创建虚拟环境的方法,以及pip和conda的常用命令。作者推荐使用conda安装科学计算和数据分析包,而pip则用于安装无法通过conda获取的包。
77 0
|
3月前
|
算法 计算机视觉 Python
python利用opencv进行相机标定获取参数,并根据畸变参数修正图像附有全部代码(流畅无痛版)
该文章详细介绍了使用Python和OpenCV进行相机标定以获取畸变参数,并提供了修正图像畸变的全部代码,包括生成棋盘图、拍摄标定图像、标定过程和畸变矫正等步骤。
python利用opencv进行相机标定获取参数,并根据畸变参数修正图像附有全部代码(流畅无痛版)
|
1月前
|
存储 算法 API
Python学习五:函数、参数(必选、可选、可变)、变量、lambda表达式、内置函数总结、案例
这篇文章是关于Python函数、参数、变量、lambda表达式、内置函数的详细总结,包含了基础知识点和相关作业练习。
27 0