如何实现stdin,stdout包装器?

前端之家收集整理的这篇文章主要介绍了如何实现stdin,stdout包装器?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我有一个运行stdin和stdout的交互式程序.
我需要创建将X发送到它的stdin的包装器,检查它是否打印Y然后
将包装器的stdin和stdout重定向到程序的stdin和stdout,就像直接执行程序一样.

怎么实现这个? X和Y可以硬编码.击?Python?

编辑:我无法运行程序两次.它必须是一个例子.
这是伪代码

def wrap(cmd,in,expected_out):
  p = exec(cmd)
  p.writeToStdin(in)
  out = p.readBytes (expected_out.size())
  if (out != expected_out) return fail;
  # if the above 4 lines would be absent or (in == "" and out == "")
  # then this wrapper would be exactly like direct execution of cmd
  connectpipe (p.stdout,stdout)
  connectpipe (stdin,p.stdin)
  p.continueExecution() 
最佳答案
Expect用于自动运行其他程序 – 基本上你用纯文本写的东西,

启动这个程序.当它打印出“用户名”这个词时,请将其用户名发送给我.当它发送“密码”时,请将密码发送给我.

它非常适合驾驶其他程序.

猜你在找的Python相关文章