python print命令导致I / O错误

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python print命令导致I / O错误相关的知识,希望对你有一定的参考价值。

我有一个python代码,几年来在几台计算机上运行良好。我最近安装了python(相同版本)并在新计算机上上传了相同的代码。代码将运行好几天,直到它在尝试执行简单的打印命令时遇到错误。打印命令是打印到主控制台,而不是打印到文件,就像'打印到目前为止'这样的QC检查。我可以注释掉所有打印命令但我需要那些QC检查。

C:Xhalo1_rt_v6.5.py in halo_storeFile(halo1Config, product, spreftype,        dateTime, ending, height)
    164         fnout_recent =  halo1Config["LATEST"]+halo1Config["NAME"]+ "_"  +  product.upper()+"_"+dateTime+"-"+spreftype + ending
    165         fdest = dst + fnout_time
--> 166         print 'STORING: ',fdest, fnout_latest, fnout_recent
    167     else:
    168         fnout_time   =  halo1Config["NAME"] +"_" + product.upper()+ "-" + spreftype+"_"+dateTime+"_" +str(height) + '_m'+ ending


C:UsersDefault.Default-PCAppDataLocalEnthoughtCanopyAppappdatacanopy-1.7.4.3348.win-x86_64libsite-packagesipykerneliostream.pyc in write(self, string)
    315 
    316             is_child = (not self._is_master_process())
--> 317             self._buffer.write(string)
    318             if is_child:
    319                 # newlines imply flush in subprocesses

ValueError: I/O operation on closed file

我的python版本,Enthought Canopy还是ipykernel有问题吗?我尝试更新ipykernel。所有的代码都是打印到控制台的简单语句,所以我不知道为什么会遇到I / O错误 - 我不写任何文件,代码在90%的时间内正常工作!

谢谢您的帮助

答案

您是否在Canopy GUI的IPython面板中运行代码?这是一个Jupyter / IPython Qtconsole,它有一个2进程(内核:前端)架构,比1进程架构更脆弱(例如,它需要通过localhost传递你的打印语句。

因此,如果这是一个长期运行的程序,在一个简单的ipython终端中运行它会更加健壮(从带有ipython的Canopy命令提示符打开)。

以上是关于python print命令导致I / O错误的主要内容,如果未能解决你的问题,请参考以下文章

Python标准异常

编写程序以处理导致 Linux 上丢失写入的 I/O 错误

Python 文件 I/O 2018-07-31

python I/O编程

17python 文件I/O

Python 文件I/O