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中 logging的使用详解
Oct 25 Python
python实现协同过滤推荐算法完整代码示例
Dec 15 Python
今天 平安夜 Python 送你一顶圣诞帽 @微信官方
Dec 25 Python
好的Python培训机构应该具备哪些条件
May 23 Python
Python中矩阵创建和矩阵运算方法
Aug 04 Python
django开发post接口简单案例,获取参数值的方法
Dec 11 Python
Python3.5基础之NumPy模块的使用图文与实例详解
Apr 24 Python
libreoffice python 操作word及excel文档的方法
Jul 04 Python
Centos7 下安装最新的python3.8
Oct 28 Python
Python RabbitMQ实现简单的进程间通信示例
Jul 02 Python
浅谈Python实现opencv之图片色素的数值运算和逻辑运算
Jun 23 Python
Python使用pandas导入xlsx格式的excel文件内容操作代码
Dec 24 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
自己动手做一个SQL解释器
2006/10/09 PHP
php实现base64图片上传方式实例代码
2017/02/22 PHP
PHP使用Redis实现防止大并发下二次写入的方法
2017/10/09 PHP
php无限级分类实现评论及回复功能
2019/02/18 PHP
ThinkPHP5.1的权限控制怎么写?分享一个AUTH权限控制
2021/03/09 PHP
使用jQuery.fn自定义jQuery翻页插件
2013/01/20 Javascript
JavaScript中的全局对象介绍
2015/01/01 Javascript
node使用UEditor富文本编辑器的方法实例
2017/07/11 Javascript
取消Bootstrap的dropdown-menu点击默认关闭事件方法
2018/08/10 Javascript
微信小程序自定义可滑动顶部TabBar选项卡实现页面切换功能示例
2019/05/14 Javascript
javascript实现留言板功能
2020/02/08 Javascript
Vue+elementUI实现多图片上传与回显功能(含回显后继续上传或删除)
2020/03/23 Javascript
Node.js API详解之 net模块实例分析
2020/05/18 Javascript
原生js实现简单轮播图
2020/10/26 Javascript
vue 使用 v-model 双向绑定父子组件的值遇见的问题及解决方案
2021/03/01 Vue.js
python基础教程之常用运算符
2014/08/29 Python
Python3实现的简单三级菜单功能示例
2019/03/12 Python
Python 中的参数传递、返回值、浅拷贝、深拷贝
2019/06/25 Python
通过实例了解python__slots__使用方法
2020/09/14 Python
如何用 Python 处理不平衡数据集
2021/01/04 Python
用python批量移动文件
2021/01/14 Python
EVE LOM英国官网:全世界最好的洁面膏
2017/10/30 全球购物
Laura Mercier官网:彩妆大师罗拉玛斯亚的化妆品牌
2018/01/04 全球购物
C#如何允许一个类被继承但是避免这个类的方法被重载?
2015/02/24 面试题
如何开启linux的ssh服务
2013/06/03 面试题
Linux Interview Questions For software testers
2013/05/17 面试题
交通事故私了协议书
2014/04/16 职场文书
员工培训协议书
2014/09/15 职场文书
机关副主任个人四风问题整改措施
2014/09/26 职场文书
检查机关党的群众路线个人整改措施
2014/10/04 职场文书
习总书记三严三实学习心得体会
2014/10/13 职场文书
2015建军节87周年演讲稿
2015/03/19 职场文书
灵魂歌王观后感
2015/06/17 职场文书
超市员工管理制度
2015/08/06 职场文书
详解php中流行的rpc框架
2021/05/29 PHP
python Tkinter模块使用方法详解
2022/04/07 Python