Expect 是一个用于生成子应用程序并控制它们的模块。我对 Python 和 Ruby 感兴趣。

有帮助吗?

解决方案

Python 的 WExpect.

中的注释 wexpect.py 文件(拼写错误未更改并添加了突出显示)

我们期望 是 pexpext 到 Windows 的端口。由于Windows的Python缺少必要的模块(PTY,TTY,SELECT,TERMIOS,FCTNL和资源)来运行PEXpect,因此有必要创建一个后端,该后端实现了使用这些模块所使用的任何功能。 wtty.py 就是这个后端。在 Windows 世界控制台不是同构的。他们可以使用低电平或高电平 电平输入和输出功能,并正确处理两种情况 子进程是为 Spawn 的 instacne 创建的,带有中间子进程 可以连续从控制台读取数据,并通过管道发送该数据 添加到 wtty 的实例。 生成器.py 负责读取和管道 数据。

我将尽可能多的代码完好无损,并且也试图留下一定的评论是可能的(尤其是尚未更改的函数),因此许多评论在与OS特定功能的关系中会误导它们。还, 此时,函数sendcontrol和sendeof尚未解放,因为我找不到这些功能的有意义的Windows版本。
此外,控制台在Windows上没有关联的FILD描述符,因此全局变量CHILD_FD永远不会。

其他提示

winpexpectpexpect到Windows的本机端口。它可以在这里找到:

https://github.com/geertj/winpexpect

您可以使用Windows命令提示符。

您需要安装在你的Windows安装了Python。

打开CMD提示符并执行以下命令:

C:\Users\xxx>pip install pexpect(如果设置Python路径中的系统变量)

C:\Users\xxx>c:\python27\scripts\pip.exe install pexpect

Collecting pexpect
  Downloading pexpect-4.0.1.tar.gz (143kB)
    100% |################################| 147kB 1.2MB/s
Collecting ptyprocess>=0.5 (from pexpect)
  Downloading ptyprocess-0.5.1-py2.py3-none-any.whl
Building wheels for collected packages: pexpect
  Running setup.py bdist_wheel for pexpect
  Stored in directory: C:\Users\xxx\AppData\Local\pip\Cache\wheels\f2\65\89\09578bcd0efeabc7e2b0079cd62d3955c1477f2e55aa5031a4
Successfully built pexpect
Installing collected packages: ptyprocess, pexpect
Successfully installed pexpect-4.0.1 ptyprocess-0.5.1

wexpect的最新工作版本住在的http://圣人。 math.washington.edu/home/goreckc/sage/wexpect/

希望这将很快合并上游。

使用Pexpect的 https://github.com/pexpect/pexpect

“Pexpect的是纯Python”,所以它会在任何地方运行,而不Cygwin的太,

编辑:Pexpect的取决于PTY模块这是目前仅限Linux,从而<强>的Nik 建议你应该使用wexpect是Pexpect的的端口

我已经成功地使用在Cygwin下Pexpect的。现在存在由于 Windows下POSIX 兼容性问题没有别的办法。

另一件事:WExpect就像Pexpect的,实际上它需要Cygwin的! 在这一点上,是Pexpect的一个更好的选择。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top