在文件对象析构函数中关闭失败[Errno 5]

时间:2013-08-15 01:11:01

标签: python io

我在代码中发生IOError,除非在此实例中有效。我完整的Traceback是,

Traceback (most recent call last):
  File "Utt_test.py", line 962, in <module>
IOError: [Errno 5] Input/output error: '/SAH/SAH5/jimunoz/DUSTYlib2/models_Y400_1499K/COMPACTs3200_SiW_g+1.5_m1.0_t02_st_z+0.0
close failed in file object destructor:
IOError: [Errno 5] Input/output error
close failed in file object destructor:
IOError: [Errno 5] Input/output error

以下是它提供错误的代码部分,

  #print 'Begin outer loop: Accessing the full DUSTY Models through the .tbl'
  for i in range(BestX):
   Tin=model[BestFitsModel[0][i]][2]
   Tau2=np.append(Tau2,model[BestFitsModel[0][i]][6])
   Dir=model[BestFitsModel[0][i]][0]
   Dir=Dir.replace('inp','out',1) ##replaces inp file-name extension with out, opens up correct .out file

   with open(Dir.replace('inp','out',1),'rb') as T: #This is line 962
    Tau = [line.split() for line in T if line.strip()]

(上面代码块的最后一行)

简而言之,整个代码将观察到的恒星数据与理论模型进行了比较。其中一个输入参数要求最小二乘阈值(如果模型低于阈值,则将该信息打印到文件中)。到目前为止,代码一直运行良好,但是我决定以比正常值更大的值运行阈值,留到夜晚,并回到此处。阈值越大,搜索和打印到文件所需的模型数量就越多。我在想(可能是错误的)这个动作的持续时间与此有关。但是否则我不知道该怎么做。

这对我来说很奇怪,因为程序适用于较小的值。发生了什么事?

编辑:(经过一些研究)

所以我跑dmesg看看问题是什么,我得到了回报,

...
[3755345.325006] nfs: server pa5a not responding, timed out
[3755345.625009] nfs: server pa5a not responding, timed out
[3781101.914024] nfs: server pa5a not responding, timed out
[3781771.727017] nfs: server pa5a not responding, timed out
...

意识到nfs意味着'网络文件服务器'(也必须查看它),我开始拼凑起来,如果程序需要很长时间服务器将“踢掉我”(可能不是最精确的语言,但我只是想了解它)。

有没有办法更改某些配置设置以防止这种情况发生?假设我必须在服务器上工作。

0 个答案:

没有答案