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 开发的三种运行模式详细介绍
Jan 18 Python
Python实现读取邮箱中的邮件功能示例【含文本及附件】
Aug 05 Python
python和opencv实现抠图
Jul 18 Python
python中文编码与json中文输出问题详解
Aug 24 Python
windows下python安装小白入门教程
Sep 18 Python
python matplotlib画图库学习绘制常用的图
Mar 19 Python
python 猴子补丁(monkey patch)
Jun 26 Python
Django forms表单 select下拉框的传值实例
Jul 19 Python
python爬虫 urllib模块反爬虫机制UA详解
Aug 20 Python
Python实现SMTP邮件发送
Jun 16 Python
python中怎么表示空值
Jun 19 Python
keras topN显示,自编写代码案例
Jul 03 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格式化工具Beautify PHP小小BUG
2008/04/24 PHP
php微信公众平台开发(四)回复功能开发
2016/12/06 PHP
php curl获取https页面内容,不直接输出返回结果的设置方法
2019/01/15 PHP
fireworks菜单生成器mm_menu.js在 IE 7.0 显示问题的解决方法
2009/10/20 Javascript
浅谈javascript的数据类型检测
2010/07/10 Javascript
IE下使用cloneNode注意事项分享
2012/11/22 Javascript
Javascript中Array.prototype.map()详解
2014/10/22 Javascript
jQuery焦点控制图层展示延迟隐藏的方法
2015/03/09 Javascript
Bootstrap3.0学习教程之JS折叠插件
2016/05/27 Javascript
vuejs开发组件分享之H5图片上传、压缩及拍照旋转的问题处理
2017/03/06 Javascript
seaJs使用心得之exports与module.exports的区别实例分析
2017/10/13 Javascript
微信小程序 scroll-view实现锚点滑动的示例
2017/12/06 Javascript
vue自定义底部导航栏Tabbar的实现代码
2018/09/03 Javascript
微信小程序实现打开并下载服务器上面的pdf文件到手机
2019/09/20 Javascript
layui 图片上传+表单提交+ Spring MVC的实例
2019/09/21 Javascript
用JS实现一个简单的打砖块游戏
2019/12/11 Javascript
JS数组方法concat()用法实例分析
2020/01/18 Javascript
基于javascript处理nginx请求过程详解
2020/07/07 Javascript
JavaScript大数相加相乘的实现方法实例
2020/10/18 Javascript
一篇文章让你搞懂JavaScript 原型和原型链
2020/11/23 Javascript
[01:11:37]完美世界DOTA2联赛PWL S2 SZ vs FTD.C 第一场 11.19
2020/11/19 DOTA
python网络编程学习笔记(五):socket的一些补充
2014/06/09 Python
Python简单定义与使用字典dict的方法示例
2017/07/25 Python
CSS3实现翘边的阴影效果的代码示例
2016/06/13 HTML / CSS
意大利团购网站:Groupon意大利
2016/10/11 全球购物
护理专业本科生自荐信
2013/10/01 职场文书
北大研究生linux应用求职信
2013/10/29 职场文书
先进班级集体事迹材料
2014/01/30 职场文书
上班迟到检讨书300字
2014/10/18 职场文书
2014年会计主管工作总结
2014/12/20 职场文书
怎样写观后感
2015/06/19 职场文书
导游词之塘栖古镇
2019/12/04 职场文书
redis实现的四种常见限流策略
2021/06/18 Redis
浅析Python中的随机采样和概率分布
2021/12/06 Python
SpringDataJPA在Entity中常用的注解介绍
2021/12/06 Java/Android
修改Nginx配置返回指定content-type的方法
2022/09/23 Servers