• 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+' ')

               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的作用

     
  • 相关阅读:
    仿微博的JQuery日历控件
    JavaScript演示下Singleton设计模式
    简短的创建Ajax对象代码
    C++常用速查
    学习网站
    Ubuntu纯命令行安装并配置Teamviewer
    在Jupyter中使用自定义conda环境
    TensorFLow: Gradient Clipping
    Python partial 工具函数
    lambda X, y: X
  • 原文地址:https://www.cnblogs.com/sdadx/p/10043803.html
Copyright © 2020-2023  润新知