python print 在windows上 出现 Bad file descriptor error
Posted 神雕爱大侠
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python print 在windows上 出现 Bad file descriptor error相关的知识,希望对你有一定的参考价值。
先说一下情况,一个python写的采集程序,做成windows服务在windows上运行。
这个问题出现的挺奇特,本来一套采集程序,一个采集文件的时候没问题,两个采集文件的时候也没问题,当三个采集文件的时候,就报错了。
错误:IOError: (9, \'Bad file descriptor\')
我还以为是代码有问题了,最终调试了下,发现是print的问题,
把print去掉后,重新运行就没问题了。那么问题来了,为啥加上print有问题了?
上面是查到的解释,看stackoverflow上的解释,当不作为控制台会话运行时,sys.stdout不可用,所以print不能用。
那么问题来了,sys.stdout和print啥关系了?
当我们在 Python 中打印对象调用 print obj 时候,事实上是调用了 sys.stdout.write(obj+\'\\n\')
print 将你需要的内容打印到了控制台,然后追加了一个换行符
print 会调用 sys.stdout 的 write 方法
对于两个时候可以,三个时候,第三个就报错,最终我只能理解为缓冲池满了吧,算了,死磕到此结束。
参考:https://stackoverflow.com/questions/4230855/why-am-i-getting-ioerror-9-bad-file-descriptor-error-while-making-print-st
python的print与sys.stdout
sys.stdout.flush() Python的作用
以上是关于python print 在windows上 出现 Bad file descriptor error的主要内容,如果未能解决你的问题,请参考以下文章
Python 3 pip 包安装在 Windows 上的 Ubuntu 上,出现 Errno 22 失败
python print中文乱码问题 win10 Python2
Java使用Runtime.getRuntime()去调用python时候,不能够实时输出python里面的print输出