gpt4 book ai didi

python - pexpect.spawn.interact 返回输入/输出错误

转载 作者:太空宇宙 更新时间:2023-11-03 19:10:02 25 4
gpt4 key购买 nike

我使用 python 脚本来编译和运行学生 fortran 代码。只要他们遵循我给他们的输入约定,这种方法就很有效。以下是对我来说效果很好的示例:

child = pexpect.spawn(os.path.join(os.path.dirname(file),name))
child.expect('')
child.sendline(input)
child.expect(pexpect.EOF)
self.r_output.append(child.before)
child.close()

当它们不遵循我的输入约定时,expect 命令不起作用。因此,我使用 child.interact()。但每当文件最终终止时我得到:

Traceback (most recent call last):
File "./project.py", line 263, in <module>
main()
File "./project.py", line 45, in main
stud.tohtml(f)
File "./project.py", line 173, in tohtml
self.run("<br/>")
File "./project.py", line 140, in run
child.interact(chr(27))
File "/usr/lib/python2.7/dist-packages/pexpect.py", line 1492, in interact
self.__interact_copy(escape_character, input_filter, output_filter)
File "/usr/lib/python2.7/dist-packages/pexpect.py", line 1520, in __interact_copy
data = self.__interact_read(self.child_fd)
File "/usr/lib/python2.7/dist-packages/pexpect.py", line 1510, in __interact_read
return os.read(fd, 1000)
OSError: [Errno 5] Input/output error

如果我足够快,可以在结束之前按 ascii 29,那么一切都会顺利进行。可能出什么问题了?如何解决这个问题?

最佳答案

这可能意味着 child 退出了。您可以将调用包装在 try/except 中并检查 child.isalive() 以确保。

关于python - pexpect.spawn.interact 返回输入/输出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13295690/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com