python程序输出无内容的解决方式


Posted in Python onApril 09, 2020

问题缘由

某项目中使用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()

这是想要执行的代码

passwd.txt中的内容

ntp:x:38:38::/etc/ntp:/sbin/nologin
apache:x:48:48:Apache:/var/www:/sbin/nologin
saslauth:x:498:76:Saslauthd user:/var/empty/saslauth:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
gdm:x:42:42::/var/lib/gdm:/sbin/nologin
pulse:x:497:496:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin

但是输出的结果是

Process finished with exit code 0

后来排查发现原来是解释器的问题

我之前使用的解释器是pycharm提供的虚拟解释器

#####如何查看解释器

点file?>new projects

python程序输出无内容的解决方式

如果选择的是2就是使用了pycharm提供的虚拟解释器,又因为passwd.txt文件不是在虚拟环境中的所以就没有输出。

点击3然后选择你已经下载好的解释器即可。

以上这篇python程序输出无内容的解决方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python同时给两个收件人发送邮件的方法
Apr 30 Python
Python中的hypot()方法使用简介
May 18 Python
python判断一个集合是否包含了另外一个集合中所有项的方法
Jun 30 Python
Python实现将sqlite数据库导出转成Excel(xls)表的方法
Jul 17 Python
python 移除字符串尾部的数字方法
Jul 17 Python
10 行 Python 代码教你自动发送短信(不想回复工作邮件妙招)
Oct 11 Python
Python一句代码实现找出所有水仙花数的方法
Nov 13 Python
详解Python函数式编程—高阶函数
Mar 29 Python
详细整理python 字符串(str)与列表(list)以及数组(array)之间的转换方法
Aug 30 Python
wxPython电子表格功能wx.grid实例教程
Nov 19 Python
Python 余弦相似度与皮尔逊相关系数 计算实例
Dec 23 Python
pytorch finetuning 自己的图片进行训练操作
Jun 05 Python
python爬虫学习笔记之Beautifulsoup模块用法详解
Apr 09 #Python
python爬虫学习笔记之pyquery模块基本用法详解
Apr 09 #Python
python使用pymongo与MongoDB基本交互操作示例
Apr 09 #Python
使用Python和百度语音识别生成视频字幕的实现
Apr 09 #Python
利用Python制作动态排名图的实现代码
Apr 09 #Python
使用python接受tgam的脑波数据实例
Apr 09 #Python
解决使用python print打印函数返回值多一个None的问题
Apr 09 #Python
You might like
两种php去除二维数组的重复项方法
2015/11/04 PHP
YII2 实现多语言配置的方法分享
2017/01/11 PHP
PHP多进程编程实例详解
2017/07/19 PHP
php7连接MySQL实现简易查询程序的方法
2020/10/13 PHP
跟我一起学写jQuery插件开发方法(附完整实例及下载)
2010/04/01 Javascript
控制页面按钮在后台执行期间不重复提交的JS方法
2013/06/24 Javascript
关于onchange事件在IE和FF下的表现及解决方法
2014/03/08 Javascript
js中用window.open()打开多个窗口的name问题
2014/03/13 Javascript
jquery插件推荐 jquery.cookie
2014/11/09 Javascript
早该知道的7个JavaScript技巧
2016/06/21 Javascript
AngularJS入门教程之更多模板详解
2016/08/19 Javascript
angularjs 源码解析之scope
2016/08/22 Javascript
利用jQuery插件imgAreaSelect实现获得选择域的图像信息
2016/12/02 Javascript
js实现适合新闻类图片的轮播效果
2017/02/05 Javascript
剖析Angular Component的源码示例
2018/03/23 Javascript
如何使用 vue + d3 画一棵树
2018/12/03 Javascript
jQuery操作attr、prop、val()/text()/html()、class属性
2019/05/23 jQuery
详解Vue.js中引入图片路径的几种方式
2019/06/17 Javascript
vue.js封装switch开关组件的操作
2020/10/26 Javascript
Vue仿百度搜索功能
2020/12/28 Vue.js
python进阶教程之词典、字典、dict
2014/08/29 Python
Django验证码的生成与使用示例
2017/05/20 Python
python动态进度条的实现代码
2019/07/03 Python
利用python-pypcap抓取带VLAN标签的数据包方法
2019/07/23 Python
pytorch 中的重要模块化接口nn.Module的使用
2020/04/02 Python
使用Python解析Chrome浏览器书签的示例
2020/11/13 Python
俄罗斯美容和健康网上商店:Созвездие Красоты
2019/07/23 全球购物
华为智利官方商店:Huawei Chile
2020/05/09 全球购物
敬老院活动总结
2014/04/28 职场文书
人事专员岗位职责说明书
2014/07/30 职场文书
做一个有道德的人活动实施方案
2014/08/23 职场文书
企业公益活动策划方案
2014/08/24 职场文书
民主评议党员自我评价材料
2014/09/18 职场文书
幼儿园教师自我评价
2015/03/04 职场文书
农民工工资承诺书大全
2015/05/04 职场文书
SpringBoot详解自定义Stater的应用
2022/07/15 Java/Android