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 相关文章推荐
使用pdb模块调试Python程序实例
Jun 02 Python
python爬取NUS-WIDE数据库图片
Oct 05 Python
python写一个md5解密器示例
Feb 23 Python
如何使用python把ppt转换成pdf
Jun 29 Python
详解python实现数据归一化处理的方式:(0,1)标准化
Jul 17 Python
使用python绘制温度变化雷达图
Oct 18 Python
Python Django框架模板渲染功能示例
Nov 08 Python
python实现串口通信的示例代码
Feb 10 Python
python如何将两张图片生成为全景图片
Mar 05 Python
Python爬虫之Selenium警告框(弹窗)处理
Dec 04 Python
DRF使用simple JWT身份验证的实现
Jan 14 Python
Python操作Excel的学习笔记
Feb 18 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
PHP5.2中date()函数显示时间与北京时间相差8小时的解决办法
2009/05/28 PHP
如何取得中文字符串中出现次数最多的子串
2013/08/08 PHP
php递归遍历多维数组的方法
2015/04/18 PHP
Javascript的闭包
2009/12/31 Javascript
js parsefloat parseint 转换函数
2010/01/21 Javascript
jQuery探测位置的提示弹窗(toolTip box)详细解析
2013/11/14 Javascript
jquery使用jquery.zclip插件复制对象的实例教程
2013/12/04 Javascript
javascript数字时钟示例分享
2014/04/23 Javascript
js控制href内容的连接内容的变化示例
2014/04/30 Javascript
通过Tabs方法基于easyUI+bootstrap制作工作站
2016/03/28 Javascript
JavaScript的React Web库的理念剖析及基础上手指南
2016/05/10 Javascript
javascript insertAfter()定义与用法示例
2016/07/25 Javascript
AngularJS通过$sce输出html的方法
2016/09/22 Javascript
把json格式的字符串转换成javascript对象或数组的方法总结
2016/11/03 Javascript
深入nodejs中流(stream)的理解
2017/03/27 NodeJs
4个顶级开源JavaScript图表库
2018/09/29 Javascript
微信小程序实现的一键连接wifi功能示例
2019/04/24 Javascript
vue created钩子函数与mounted钩子函数的用法区别
2020/11/05 Javascript
Python+Django在windows下的开发环境配置图解
2009/11/11 Python
python进阶教程之模块(module)介绍
2014/08/30 Python
python获得一个月有多少天的方法
2015/06/04 Python
Python cv2 图像自适应灰度直方图均衡化处理方法
2018/12/07 Python
Opencv+Python 色彩通道拆分及合并的示例
2018/12/08 Python
Pyqt QImage 与 np array 转换方法
2019/06/27 Python
代码实例讲解python3的编码问题
2019/07/08 Python
Django中自定义模型管理器(Manager)及方法
2019/09/23 Python
opencv调整图像亮度对比度的示例代码
2019/09/27 Python
Python字典的概念及常见应用实例详解
2019/10/30 Python
pd.DataFrame统计各列数值多少的实例
2019/12/05 Python
解决html5中video标签无法播放mp4问题的办法
2017/05/07 HTML / CSS
Laura Mercier官网:彩妆大师罗拉玛斯亚的化妆品牌
2018/01/04 全球购物
Puccini乌克兰:购买行李箱、女士手袋网上商店
2020/08/06 全球购物
表彰先进的通报
2014/01/31 职场文书
创业资金计划书
2014/02/06 职场文书
Mysql分析设计表主键为何不用uuid
2022/03/31 MySQL
Vue2项目中对百度地图的封装使用详解
2022/06/16 Vue.js