加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

使用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程序,它接受输入并输出一些字符串.像这样(实际程序要复杂得多,但仍然基于文本):

$./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!

我之前没有使用过Python,但有可能编写一个python脚本来运行这个程序,输入它并将结果输出到标准输出吗?我问过关于使用C运行它的问题here,但它似乎太复杂了.你能引导我看一些代码示例真是太棒了.任何帮助,将不胜感激.

最佳答案
使用pexpect.

正常的stdin / stdout管道通常不起作用,因为当文件描述符不是TTY时(通过isatty调用),父进程和子进程中的标准库设施倾向于更积极地缓冲I / O.显然,您可以在父级中修复此问题,因为您拥有该代码;只需在适当的位置调用flush.但是,子进程通常运行一些您不拥有的预先存在的代码. pexpect模块为子进程提供伪tty,这会欺骗孩子认为它正在与控制台通信.这与xterm和rxvt等GUI终端使用的技巧相同.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读