Python IOError:[Errno 5]输入/输出错误?

时间:2018-09-17 23:31:34

标签: python

我正在使用nohup在远程服务器上运行python脚本。

  • 首先,我使用VPN和SSH连接到远程计算机
  • 第二,我使用以下命令运行python脚本:

    nohup python backmap.py mpirun -np 48&

python脚本包含以下几行:

frame = []
file_in = open("Traj_equil_prot.pdb", "r")
for line in file_in:
    if line.startswith('TITLE'):
        frame.append(line[127:134])

import os
for fileNum in range(631, 29969):
    os.system("./initram-v5.sh -f Traj_equil_prot_frame" +  str(fileNum) + ".pdb -o Traj_equilprot_aa_frame" + str(frame[fileNum]) + ".gro -to amber -p topol.top")

脚本全天运行良好。但是现在它刚刚崩溃了,当我尝试重新启动它时,出现以下错误:

  

回溯(最近一次通话最后一次):文件“”,第1行,在    IOError:[错误5]输入/输出错误

该文件位于工作目录中。我试图再次断开连接/连接,但仍然是同样的问题。我不知道我在想什么。有什么帮助吗?

2 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,我曾经使用以下命令运行脚本:

python MY_SCRIPT.py &

该脚本将在后台运行,并且输出将显示在终端上,直到您注销或退出为止。

通过注销,脚本仍在运行,但是它的输出无处显示,因此,当脚本想要显示某些内容(例如,调用 print )时,将产生异常。


解决方案:

我已将输出通过管道传输到实际终端显示以外的地方:

python MY_SCRIPT.py >/dev/null &

查看此链接以获取更多详细信息:

https://stackoverflow.com/a/38238281/6826476

答案 1 :(得分:0)

我终于解决了问题,方法是打开文件“ file_in”,对其进行修改(例如,仅在REMARK行中添加一个点)并保存更改。