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 相关文章推荐
Python3实现将文件树中所有文件和子目录归档到tar压缩文件的方法
May 22 Python
Python的爬虫包Beautiful Soup中用正则表达式来搜索
Jan 20 Python
深入解析Python中的上下文管理器
Jun 28 Python
Python中标准库OS的常用方法总结大全
Jul 19 Python
Python之列表实现栈的工作功能
Jan 28 Python
Python完成毫秒级抢淘宝大单功能
Jun 06 Python
详解pandas使用drop_duplicates去除DataFrame重复项参数
Aug 01 Python
将Pytorch模型从CPU转换成GPU的实现方法
Aug 19 Python
Python之Numpy的超实用基础详细教程
Oct 23 Python
Django自定义列表 models字段显示方式
Apr 03 Python
python属于哪种语言
Aug 16 Python
Python获取指定日期是"星期几"的6种方法
Mar 13 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中判断一个字符串包含另一个字符串的方法
2007/03/19 PHP
php header功能的使用
2013/10/28 PHP
php数组合并array_merge()函数使用注意事项
2014/06/19 PHP
PHP生成(支持多模板)二维码海报代码
2018/04/30 PHP
jquery 淡入淡出效果的简单实现
2014/02/07 Javascript
Jquery的Tabs内容轮换效果实现代码,几行搞定
2014/02/12 Javascript
禁用Tab键JS代码兼容Firefox和IE
2014/04/18 Javascript
javascript数据结构与算法之检索算法
2015/04/04 Javascript
JavaScript基础教程——入门必看篇
2016/05/20 Javascript
快速掌握jQuery插件WebUploader文件上传
2016/11/07 Javascript
ES6新特性五:Set与Map的数据结构实例分析
2017/04/21 Javascript
基于node.js之调试器详解
2017/08/22 Javascript
基于JavaScript实现瀑布流布局
2018/08/15 Javascript
Vue表情输入组件 微信face表情组件
2019/02/11 Javascript
js表达式与运算符简单操作示例
2020/02/15 Javascript
[02:00]DOTA2英雄COSPLAY闹市街头巡游助威2015国际邀请赛
2015/08/02 DOTA
Python实现解析Bit Torrent种子文件内容的方法
2017/08/29 Python
Matplotlib 生成不同大小的subplots实例
2018/05/25 Python
Ubuntu18.04下python版本完美切换的解决方法
2019/06/14 Python
Django stark组件使用及原理详解
2019/08/22 Python
python3常用的数据清洗方法(小结)
2019/10/31 Python
基于python实现蓝牙通信代码实例
2019/11/19 Python
利用Tensorflow的队列多线程读取数据方式
2020/02/05 Python
pytorch模型存储的2种实现方法
2020/02/14 Python
CSS3 仿微信聊天小气泡实例代码
2017/04/05 HTML / CSS
创造美妙香氛体验:Aera扩散器和香水
2018/11/25 全球购物
长安大学毕业生自我鉴定
2014/01/17 职场文书
社区十八大感言
2014/01/19 职场文书
教师自我鉴定范文
2014/03/20 职场文书
小学数学教学经验交流材料
2014/05/22 职场文书
语文教研活动总结
2014/07/02 职场文书
开展创先争优活动总结
2014/08/28 职场文书
2019如何书写演讲稿?
2019/07/01 职场文书
用Python写一个简易版弹球游戏
2021/04/13 Python
web前端之css水平居中代码解析
2021/05/20 HTML / CSS
MySQL数据库配置信息查看与修改方法详解
2022/06/25 MySQL