从品牌网站建设到网络营销策划,从策略到执行的一站式服务
这篇文章主要为大家展示了python程序输出无内容怎么办,内容简而易懂,希望大家可以学习一下,学习完之后肯定会有收获的,下面让小编带大家一起来看看吧。
问题缘由
某项目中使用python脚本方式将日志文件中的数据持续的转换格式输出到另一文件中以供其他日志分析应用使用。但是当后台运行采取重定向方式输出到某一文件时,发现并没有内容输出,命令如下:
python xxx.py > xxx.log &
测试发现,当前台直接输出到终端时正常,使用后台运行重定向的方式输出到文件中时无法输出。
解决办法
发现是在程序运行时,输出有缓存,只有当程序运行结束或者缓冲区满后才会输出。因为程序是一致在运行的所以不可能等待程序结束在输出。并且要求是有实时性的所以等缓冲区满输出的方式也不可取。
所以采用在python运行时加上-u参数,如:
python -u xxx.py > xxx.log &
-u参数的意义是不使用缓冲的方式输入输出
详细如下:
Force stdin, stdout and stderr to be totally unbuffered. On systems where it matters, also put stdin, stdout and stderr in binary mode. Note that there is internal buffering in xreadlines(), readlines() and file-object iterators (“for line in sys.stdin”) which is not influenced by this option. To work around this, you will want to use “sys.stdin.readline()” inside a “while 1:” loop.
补充知识:python中运行代码时没有报错但是也没有输出而且还有exit code 0的结束标志
如下所示:
f=open("passwd.txt",'r') print (f.read(4)) f.close()
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图