Expect是一个用于生成子应用程序并控制它们的模块。我对Python和Ruby感兴趣。
答案 0 :(得分:17)
wexpect.py
文件中的注释(拼写错误并突出显示已添加)
Wexpect 是一个pexpext到Windows的端口。因为用于Windows的python缺乏 要运行的必需模块(pty,tty,select,termios,fctnl和resource) pexpect,有必要创建一个实现任何功能的后端 那些依赖于这些模块的东西。 Wtty.py 就是这个后端。在 Windows世界控制台不是同质的。他们可以使用低级别或高级别 级别输入和输出功能,并正确处理两种情况 子进程是为Spawn的instacne创建的,带有一个intermidate子进程 可以从控制台连续读取,并通过管道发送该数据 一个wtty的例子。 Spawner.py 可以阅读和管道 数据
我尽可能多地保留了完整的代码,并试图留下尽可能多的评论 完整是可能的(特别是对于没有改变的功能)这么多 这些评论会误导他们与特定操作系统的关系 功能。另外,函数sendcontrol和sendeof没有实现 这一次,因为我找不到这些功能的有意义的Windows版本。
另外,控制台在Windows上没有关联的fild描述符,所以 全局变量child_fd将始终为None。
答案 1 :(得分:6)
winpexpect
是Windows的pexpect
本机端口。它可以在这里找到:
答案 2 :(得分:4)
您可以使用Windows CMD提示。
您需要在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
答案 3 :(得分:2)
使用pexpect https://github.com/pexpect/pexpect
“Pexpect是纯Python”,所以它可以在任何地方运行,没有Cygwin,
编辑:pexpect依赖于当前仅适用于Linux的pty模块,因此 Nik 建议你应该使用wexpect,这是一个pexpect的端口
答案 4 :(得分:2)
wexpect的最新工作版本位于http://sage.math.washington.edu/home/goreckc/sage/wexpect/
希望它很快会合并到上游。
答案 5 :(得分:0)
我在Cygwin下成功使用了Pexpect。目前,由于Windows下的POSIX兼容性问题,没有其他办法。
另一件事:WExpect像Pexpect一样,事实上它需要Cygwin! 在这一点上,PExpect是一个更好的选择。