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基础教程之基本内置数据类型介绍
Feb 20 Python
使用python实现rsa算法代码
Feb 17 Python
浅谈python中的面向对象和类的基本语法
Jun 13 Python
python递归删除指定目录及其所有内容的方法
Jan 13 Python
Python中的浮点数原理与运算分析
Oct 12 Python
python实现石头剪刀布程序
Jan 20 Python
基于Python新建用户并产生随机密码过程解析
Oct 08 Python
Django的CVB实例详解
Feb 10 Python
Python关于__name__属性的含义和作用详解
Feb 19 Python
python实现简单的购物程序代码实例
Mar 03 Python
教你利用Selenium+python自动化来解决pip使用异常
May 20 Python
用Python将GIF动图分解成多张静态图片
Jun 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学习之整理字符串
2011/04/17 PHP
采集邮箱的php代码(抓取网页中的邮箱地址)
2012/07/17 PHP
phpExcel导出大量数据出现内存溢出错误的解决方法
2013/02/28 PHP
jquery tools 系列 scrollable(2)
2009/09/06 Javascript
jQuery创建插件的代码分析
2011/04/14 Javascript
javaScript让文本框内的最后一个文字的后面获得焦点实现代码
2013/01/06 Javascript
MyEclipse取消验证Js的两种方法
2013/11/14 Javascript
使用jquery中height()方法获取各种高度大全
2014/04/02 Javascript
jquery中 $.expr使用实例介绍
2014/06/09 Javascript
jQuery读取XML文件内容的方法
2015/03/09 Javascript
浅谈javascript的分号的使用
2015/05/12 Javascript
纯javascript代码实现计算器功能(三种方法)
2015/09/07 Javascript
谈谈encodeURI和encodeURIComponent以及escape的区别与应用
2015/11/24 Javascript
JQueryEasyUI框架下的combobox的取值和绑定的方法
2017/01/22 Javascript
Angular.Js中ng-include指令的使用与实现
2017/05/07 Javascript
JavaScript判断浏览器和hack滚动条的写法
2017/07/23 Javascript
Vue中使用clipboard实现复制功能
2018/09/05 Javascript
vue1.0和vue2.0的watch监听事件写法详解
2018/09/11 Javascript
vue实现日历备忘录功能
2020/09/24 Javascript
[55:35]VGJ.S vs Mski Supermajor小组赛C组 BO3 第二场 6.3
2018/06/04 DOTA
[01:20]DOTA2更新全新英雄 天涯墨客现已加入游戏
2018/08/25 DOTA
Python Socket编程入门教程
2014/07/11 Python
python创建和删除目录的方法
2015/04/29 Python
python django生成迁移文件的实例
2019/08/31 Python
torch 中各种图像格式转换的实现方法
2019/12/26 Python
Python应用实现处理excel数据过程解析
2020/06/19 Python
canvas因为图片资源不在同一域名下而导致的跨域污染画布的解决办法
2019/01/18 HTML / CSS
Rockport乐步美国官网:风靡美国的白宫鞋
2016/11/24 全球购物
英国安全产品购物网站:The Safe Shop
2017/03/20 全球购物
采购主管岗位职责
2014/02/01 职场文书
2014年五四青年节活动方案
2014/03/29 职场文书
租赁协议书
2015/01/27 职场文书
nginx限制并发连接请求数的方法
2021/04/01 Servers
python源码剖析之PyObject详解
2021/05/18 Python
Mybatis-plus在项目中的简单应用
2021/07/01 Java/Android
Python用tkinter实现自定义记事本的方法详解
2022/03/31 Python