使用python运行C程序并测试它

假设我有一个简单的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终端使用的技巧相同.

相关文章

我最近重新拾起了计算机视觉,借助Python的opencv还有face_r...
说到Pooling,相信学习过CNN的朋友们都不会感到陌生。Poolin...
记得大一学Python的时候,有一个题目是判断一个数是否是复数...
文章目录 3 直方图Histogramplot1. 基本直方图的绘制 Basic ...
文章目录 5 小提琴图Violinplot1. 基础小提琴图绘制 Basic v...
文章目录 4 核密度图Densityplot1. 基础核密度图绘制 Basic ...