当前位置:家常菜>百科>科技>正文

python代码没错但运行不出来

人气:287 ℃/2023-09-03 11:10:33

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然后选择你已经下载好的解释器即可。

  • 高情商的人说早安语句 精致女人早安语

    1、有梦想,就要捍卫它。人们和你说不可能,只是因为他们自己办不到。想追求什么,就去努力,奋斗吧!早安!2、时间不仅让你看透别人,也让你认清自己。很多时候,就是在跌跌拌拌中,我们...

    语录查看全文>>
  • 别克gl6是三缸吗

    别克gl6的发动机是三缸的,这款车搭载了1.3升三缸涡轮增压发动机。别克gl6的这款三缸发动机最大功率为120kw,最大扭矩为230牛米,最大功率转速为5500转每分钟,最大扭...

    问答查看全文>>
  • 学生防溺水保证书模板

    学生防溺水保证书怎么写呢?不知道的小伙伴来看看小编今天的分享吧!学生防溺水保证书写法:1、保证书的内容要写得切实、具体,要实事求是。2、写出保证人和接受保证一方的身份信息。3、...

    教育查看全文>>
  • 标致508节气门多久清洗?

    标致508节气门2万公里清洗,节气门是控制空气进入发动机的一道可控阀门,有传统拉线式和电子节气门两种。气体进入进气管后会和汽油混合成可燃混合气,从而燃烧做功,它上接空气滤清器,...

    问答查看全文>>
  • 宝来倒车镜外壳怎么拆

    直接将倒车镜的外壳向外侧用力移动,就能够拆卸,也可以借助胶布的帮助,然后再向外侧用力的拽,就能够将外壳拆卸。后视镜外壳的安装是采用的卡扣方式,而并不是使用螺丝固定的。一汽大众旗...

    问答查看全文>>
本网站部分内容、图文来自于网络,如有内容侵犯您的合法权益,请及时与我们联系,我们将第一时间安排核实及删除!
CopyRight © 2007-2024 家常菜 All Rights Reserved. 手机版