python代码没错但运行不出来

python代码没错但运行不出来是什么原因呢?不知道的小伙伴来看看小编今天的分享吧!

1、python代码没错但运行不出来的原因:

某项目中使用python脚本方式将日志文件中的数据持续的转换格式输出到另一文件中以供其他日志分析应用使用。但是当后台运行采取重定向方式输出到某一文件时,发现并没有内容输出,命令如下:

python xxx.py > xxx.log &

测试发现,当前台直接输出到终端时正常,使用后台运行重定向的方式输出到文件中时无法输出。

2、解决办法:

发现是在程序运行时,输出有缓存,只有当程序运行结束或者缓冲区满后才会输出。因为程序是一致在运行的所以不可能等待程序结束在输出。并且要求是有实时性的所以等缓冲区满输出的方式也不可取。

所以采用在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?C>new projects

如果选择的是2就是使用了pycharm提供的虚拟解释器,又因为passwd.txt文件不是在虚拟环境中的所以就没有输出。

点击3然后选择你已经下载好的解释器即可。

以上就是小编今天的分享了,希望可以帮助到大家。

标签:python代码

免责声明:本内容来自橡树街平台创作者或收集于互联网公开资源,不代表橡树街网的观点和立场。如有侵权内容,请联系我们删除。联系邮箱:ihuangque@qq.com
相关推荐
python代码没错但运行不出来
2022-08-05
python代码没错但运行不出来
手机老是弹出广告怎么解决
2022-08-05
手机老是弹出广告怎么解决
小爱同学怎么判断我喜欢的人喜不喜欢我
2022-08-05
小爱同学怎么判断我喜欢的人喜不喜欢我
安卓手机如何打开.kmz文件
2022-08-05
安卓手机如何打开.kmz文件
苹果手机文件管理在哪里
2022-08-05
苹果手机文件管理在哪里
安卓手机如何打开.sav文件
2022-08-05
安卓手机如何打开.sav文件
小时代系列到底哪里烂了为什么那么多人都说它烂
2022-07-28
小时代系列到底哪里烂了为什么那么多人都说它烂
乐视2手机突然黑屏怎么回事
2022-07-28
乐视2手机突然黑屏怎么回事
历史上是不是真的有大乔这个人
2022-07-28
历史上是不是真的有大乔这个人
报考时专业重要还是几本重要
2022-07-28
报考时专业重要还是几本重要
芥末怎么做才辣
2022-07-28
芥末怎么做才辣
海底捞一般晚上几点关门
2022-07-28
海底捞一般晚上几点关门
乳化剂有哪些
2022-07-28
乳化剂有哪些
打不开瓶盖怎么办
2022-07-28
打不开瓶盖怎么办
昭和时代是什么时候
2022-07-28
昭和时代是什么时候
纳鲁是什么
2022-07-28
纳鲁是什么