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下singleton模式的实现方法
Jul 16 Python
python输出当前目录下index.html文件路径的方法
Apr 28 Python
Python 列表理解及使用方法
Oct 27 Python
Python格式化输出字符串方法小结【%与format】
Oct 29 Python
Python拼接字符串的7种方法总结
Nov 01 Python
pandas DataFrame 行列索引及值的获取的方法
Jul 02 Python
python matplotlib库直方图绘制详解
Aug 10 Python
python多线程高级锁condition简单用法示例
Nov 07 Python
python实现飞行棋游戏
Feb 05 Python
Python内存映射文件读写方式
Apr 24 Python
Django+Celery实现动态配置定时任务的方法示例
May 26 Python
Python流程控制语句的深入讲解
Jun 15 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
Smarty模板快速入门
2007/01/04 PHP
MYSQL环境变量设置方法
2007/01/15 PHP
yii框架搜索分页modle写法
2016/12/19 PHP
在 Laravel 项目中使用 webpack-encore的方法
2019/07/21 PHP
event.srcElement+表格应用
2006/08/29 Javascript
xml 封装与解析(javascript和C#中)
2009/07/26 Javascript
javascript 处理事件绑定的一些兼容写法
2009/12/24 Javascript
Jquery仿淘宝京东多条件筛选可自行结合ajax加载示例
2013/08/28 Javascript
Backbone.js 0.9.2 源码注释中文翻译版
2015/06/25 Javascript
JavaScript 正则表达式中global模式的特性
2016/02/25 Javascript
浅谈javascript中new操作符的原理
2016/06/07 Javascript
AngularJS过滤器filter用法分析
2016/12/11 Javascript
Vue.js基础学习之class与样式绑定
2017/03/20 Javascript
jQuery+SpringMVC中的复选框选择与传值实例
2018/01/08 jQuery
JavaScript实现PC端四格密码输入框功能
2020/02/19 Javascript
Python 连连看连接算法
2008/11/22 Python
Python Web开发模板引擎优缺点总结
2014/05/06 Python
python模块简介之有序字典(OrderedDict)
2016/12/01 Python
Python之pandas读写文件乱码的解决方法
2018/04/20 Python
Python 实现引用其他.py文件中的类和类的方法
2018/04/29 Python
Python3随机漫步生成数据并绘制
2018/08/27 Python
Python中浅拷贝copy与深拷贝deepcopy的简单理解
2018/10/26 Python
python样条插值的实现代码
2018/12/17 Python
Flask框架学习笔记之消息提示与异常处理操作详解
2019/08/15 Python
Django Form and ModelForm的区别与使用
2019/12/06 Python
后端开发使用pycharm的技巧(推荐)
2020/03/27 Python
Django如何批量创建Model
2020/09/01 Python
美国购买隐形眼镜网站:Lenses For Less
2020/07/05 全球购物
中国梦的演讲稿
2014/01/08 职场文书
中级会计职业生涯规划范文
2014/01/16 职场文书
《临死前的严监生》教学反思
2014/02/13 职场文书
餐饮总经理岗位职责
2014/03/07 职场文书
关于爱国的标语
2014/06/24 职场文书
2015学校图书管理员工作总结
2015/05/11 职场文书
纪录片信仰观后感
2015/06/08 职场文书
采购员工作总结范文
2015/08/12 职场文书