wordpress视频网站上传视频,wordpress企业中文主题,设计一个网站重点是什么,邯郸信息港征婚缘起#xff1a;今天在看arcface的训练代码#xff0c;在shell脚本中运行python 命令时后面加了-u 参数(python -u xx.py)#xff0c;于是对这个参数进行了下小研究。准备知识用网上的一个程序示例来说明#xff0c;python中标准错误(std.err)和标准输出(std.out)的输出规则…缘起今天在看arcface的训练代码在shell脚本中运行python 命令时后面加了-u 参数(python -u xx.py)于是对这个参数进行了下小研究。准备知识用网上的一个程序示例来说明python中标准错误(std.err)和标准输出(std.out)的输出规则(标准输出默认需要缓存后再输出到屏幕而标准错误则直接打印到屏幕)import syssys.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参数了。python命令加上-u(unbuffered)参数后会强制其标准输出也同标准错误一样不通过缓存直接打印到屏幕。运行结果stdout1stderr1stdout2stderr2这样变成了预期的输出了。注意以上结果是在python2下执行实现的本人也在python3下进行了测试python3下即便加上-u或者加上环境变量UNBUFFERED1 运行起来stdout依旧写缓存(执行结果stderr1stderr2stdout1stdout2)具体原因没搞清后续搞清后再来更新。通过以上分析不难看出尤其是在将python执行脚本输出到屏幕结果直接重定向到日志文件的情况下使用-u参数这样将标准输出的结果不经缓存直接输出到日志文件。以上这篇对python 命令的-u参数详解就是小编分享给大家的全部内容了希望能给大家一个参考也希望大家多多支持脚本之家。