使用python运行C程序并测试它
发布时间:2020-12-16 22:16:17 所属栏目:Python 来源:网络整理
导读:假设我有一个简单的C程序,它接受输入并输出一些字符串.像这样(实际程序要复杂得多,但仍然基于文本): $./game$what kind of game? type r for regular,s for special.$r$choose a number from 1 - 10$1$no try again$2$no try again$5$yes you WIN! 我之前没
假设我有一个简单的C程序,它接受输入并输出一些字符串.像这样(实际程序要复杂得多,但仍然基于文本):
我之前没有使用过Python,但有可能编写一个python脚本来运行这个程序,输入它并将结果输出到标准输出吗?我问过关于使用C运行它的问题here,但它似乎太复杂了.你能引导我看一些代码示例真是太棒了.任何帮助,将不胜感激. 最佳答案
使用pexpect.
正常的stdin / stdout管道通常不起作用,因为当文件描述符不是TTY时(通过isatty调用),父进程和子进程中的标准库设施倾向于更积极地缓冲I / O.显然,您可以在父级中修复此问题,因为您拥有该代码;只需在适当的位置调用flush.但是,子进程通常运行一些您不拥有的预先存在的代码. pexpect模块为子进程提供伪tty,这会欺骗孩子认为它正在与控制台通信.这与xterm和rxvt等GUI终端使用的技巧相同. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |