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 相关文章推荐
JPype实现在python中调用JAVA的实例
Jul 19 Python
python OpenCV学习笔记直方图反向投影的实现
Feb 07 Python
Django 多语言教程的实现(i18n)
Jul 07 Python
Python单元测试unittest的具体使用示例
Dec 17 Python
Python中整数的缓存机制讲解
Feb 16 Python
Python中将两个或多个list合成一个list的方法小结
May 12 Python
python3实现绘制二维点图
Dec 04 Python
Python监控服务器实用工具psutil使用解析
Dec 19 Python
详解用selenium来下载小姐姐图片并保存
Jan 26 Python
selenium.webdriver中add_argument方法常用参数表
Apr 08 Python
如何在pycharm中快捷安装pip命令(如pygame)
May 31 Python
Python anaconda安装库命令详解
Oct 16 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
ajax缓存问题解决途径
2006/12/06 PHP
PHP关联数组的10个操作技巧
2013/01/21 PHP
Zend Framework基本页面布局分析
2016/03/19 PHP
ThinkPHP实现附件上传功能
2017/04/27 PHP
PHP chr()函数讲解
2019/02/11 PHP
TP5框架实现签到功能的方法分析
2020/04/05 PHP
jQuery使用手册之三 CSS操作
2007/03/24 Javascript
使用jquery实现select添加实现后台权限添加的效果
2011/05/28 Javascript
FireFox下XML对象转化成字符串的解决方法
2011/12/09 Javascript
js创建元素(节点)示例
2014/01/02 Javascript
实现网页页面跳转的几种方法(meta标签、js实现、php实现)
2014/05/20 Javascript
浅谈jquery的map()和each()方法
2016/06/12 Javascript
vue实现表格增删改查效果的实例代码
2017/07/18 Javascript
JavaScript实现的仿新浪微博原生态输入字数即时检查功能【兼容IE6】
2017/09/26 Javascript
Angular7.2.7路由使用初体验
2019/03/01 Javascript
解决vue-cli@3.xx安装不成功的问题及搭建ts-vue项目
2020/02/09 Javascript
windows下create-react-app 升级至3.3.1版本踩坑记
2020/02/17 Javascript
ES6中Promise的使用方法实例总结
2020/02/18 Javascript
微信小程序实现选项卡滑动切换
2020/10/22 Javascript
原生js实现九宫格拖拽换位
2021/01/26 Javascript
python通过文件头判断文件类型
2015/10/30 Python
Python面向对象之接口、抽象类与多态详解
2018/08/27 Python
python pytest进阶之fixture详解
2019/06/27 Python
Python tkinter布局与按钮间距设置方式
2020/03/04 Python
python中二分查找法的实现方法
2020/12/06 Python
NFL加拿大官方网上商店:NHLShop.ca
2019/03/12 全球购物
英国打印机墨盒销售网站:Ink Factory
2019/10/07 全球购物
日本动漫周边服饰销售网站:Atsuko
2019/12/16 全球购物
会计专业自我鉴定范文
2013/10/06 职场文书
法学函授自我鉴定
2014/02/06 职场文书
员工升职自荐信
2015/03/27 职场文书
小学教师个人工作总结2015
2015/04/20 职场文书
卫生院义诊活动总结
2015/05/07 职场文书
公司借条范本
2015/05/25 职场文书
2016教师政治学习心得体会
2016/01/23 职场文书
vue中data改变后让视图同步更新的方法
2021/03/29 Vue.js