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的id()函数介绍
Feb 10 Python
python多线程threading.Lock锁用法实例
Nov 01 Python
详解python单例模式与metaclass
Jan 15 Python
更改Ubuntu默认python版本的两种方法python-> Anaconda
Dec 18 Python
Python实现好友全头像的拼接实例(推荐)
Jun 24 Python
python利用dir函数查看类中所有成员函数示例代码
Sep 08 Python
python实现数据写入excel表格
Mar 25 Python
pandas中的DataFrame按指定顺序输出所有列的方法
Apr 10 Python
python实现飞机大战游戏
Oct 26 Python
django实现将修改好的新模型写入数据库
Mar 31 Python
Python优秀开源项目Rich源码解析的流程分析
Jul 06 Python
python 实现aes256加密
Nov 27 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简单读取.vcf格式文件的方法示例
2017/09/02 PHP
PHP simplexml_load_string()函数实例讲解
2019/02/03 PHP
thinkphp5使html5实现动态跳转的例子
2019/10/16 PHP
PHP单元测试配置与使用方法详解
2019/12/27 PHP
JavaScript中void(0)的具体含义解释
2007/02/27 Javascript
javascript+xml技术实现分页浏览
2008/07/27 Javascript
jquery关于图形报表的运用实现代码
2011/01/06 Javascript
页面使用密码保护代码
2013/04/10 Javascript
js动态设置div的值下例子
2013/10/29 Javascript
js判断浏览器类型为ie6时不执行
2014/06/15 Javascript
javascript实现鼠标放上后下边对应内容变换的效果
2015/08/06 Javascript
Jquery zTree 树控件异步加载操作
2016/02/25 Javascript
JS控制静态页面传递参数并获取参数应用
2016/08/10 Javascript
angularJS Provider、factory、service详解及实例代码
2016/09/21 Javascript
JavaScript控制输入框中只能输入中文、数字和英文的方法【基于正则实现】
2017/03/03 Javascript
浅谈React前后端同构防止重复渲染
2018/01/05 Javascript
解决linux下node.js全局模块找不到的问题
2018/05/15 Javascript
vue实现百度下拉列表交互操作示例
2019/03/12 Javascript
如何在现代JavaScript中编写异步任务
2021/01/31 Javascript
仅用500行Python代码实现一个英文解析器的教程
2015/04/02 Python
python动态性强类型用法实例
2015/05/09 Python
Python基于QRCode实现生成二维码的方法【下载,安装,调用等】
2017/07/11 Python
Python实现解析Bit Torrent种子文件内容的方法
2017/08/29 Python
Django web框架使用url path name详解
2019/04/29 Python
python之mock模块基本使用方法详解
2019/06/27 Python
Python matplotlib学习笔记之坐标轴范围
2019/06/28 Python
Pycharm 字体大小调整设置的方法实现
2019/09/27 Python
Python搭建代理IP池实现获取IP的方法
2019/10/27 Python
Python调用C/C++的方法解析
2020/08/05 Python
GoDaddy英国:全球排名第一的域名注册商
2018/06/08 全球购物
小学教师的个人自我鉴定
2013/10/26 职场文书
火车来了教学反思
2014/02/11 职场文书
2015幼儿园新学期寄语
2015/02/27 职场文书
2015年教师见习期工作总结
2015/05/20 职场文书
Mysql实现主从配置和多主多从配置
2021/06/02 MySQL
集英社今正式宣布 成立游戏公司“集英社Games”
2022/03/31 其他游戏