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中global用法实例分析
Apr 30 Python
Python使用正则表达式抓取网页图片的方法示例
Apr 21 Python
简单谈谈Python中的元祖(Tuple)和字典(Dict)
Apr 21 Python
Python 结巴分词实现关键词抽取分析
Oct 21 Python
PyQt5每天必学之布局管理
Apr 19 Python
Python利用Django如何写restful api接口详解
Jun 08 Python
python多线程调用exit无法退出的解决方法
Feb 18 Python
Python深拷贝与浅拷贝用法实例分析
May 05 Python
python 字符串常用方法汇总详解
Sep 16 Python
深入浅析Python 函数注解与匿名函数
Feb 24 Python
Python线程threading模块用法详解
Feb 26 Python
解决Python保存文件名太长OSError: [Errno 36] File name too long
May 11 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获取http请求的头信息实现步骤
2012/12/16 PHP
PHP实现数组的笛卡尔积运算示例
2017/12/15 PHP
Laravel + Elasticsearch 实现中文搜索的方法
2020/02/02 PHP
TP5框架页面跳转样式操作示例
2020/04/05 PHP
PHP7 其他修改
2021/03/09 PHP
Using the TextRange Object
2006/10/14 Javascript
强悍无比的WEB开发好助手FireBug(Firefox Plugin)
2007/01/16 Javascript
jQuery中对节点进行操作的相关介绍
2013/04/16 Javascript
js 获取和设置css3 属性值的实现方法
2013/05/06 Javascript
深入探寻seajs的模块化与加载方式
2015/04/14 Javascript
jQuery bt气泡实现悬停显示及移开隐藏功能的方法
2016/07/12 Javascript
微信小程序 wx.request(object) API详解及实例代码
2016/09/30 Javascript
JS实现根据密码长度显示安全条功能
2017/03/08 Javascript
详解vue express启动数据服务
2017/07/05 Javascript
vue.js模仿京东省市区三级联动的选择组件实例代码
2017/11/22 Javascript
初识 Vue.js 中的 *.Vue文件
2017/11/22 Javascript
bootstrap动态调用select下拉框的实例代码
2018/08/09 Javascript
VUE+elementui组件在table-cell单元格中绘制微型echarts图
2020/04/20 Javascript
JS制作简易计算器的实例代码
2020/07/04 Javascript
vue的$http的get请求要加上params操作
2020/11/12 Javascript
[03:26]《DAC最前线》之EG经理自述DOTA2经历
2015/02/02 DOTA
Python中列表和元组的相关语句和方法讲解
2015/08/20 Python
用Python写飞机大战游戏之pygame入门(4):获取鼠标的位置及运动
2015/11/05 Python
Python遍历文件夹和读写文件的实现代码
2016/08/28 Python
pandas数据分组和聚合操作方法
2018/04/11 Python
Python二进制串转换为通用字符串的方法
2018/07/23 Python
Python 数值区间处理_对interval 库的快速入门详解
2018/11/16 Python
Python实现王者荣耀自动刷金币的完整步骤
2021/01/22 Python
简单聊聊H5的pushState与replaceState的用法
2018/04/03 HTML / CSS
Sandro法国官网:法国成衣品牌
2019/08/28 全球购物
《要下雨了》教学反思
2014/02/17 职场文书
人力资源管理毕业求职信
2014/08/05 职场文书
出纳岗位职责范本
2015/03/31 职场文书
红色电影观后感
2015/06/18 职场文书
军事理论课感想
2015/08/11 职场文书
maven 解包依赖项中的文件的解决方法
2022/07/15 Java/Android