Pregunta

Expect es un módulo utilizado para generar aplicaciones secundarias y controlarlas. Estoy interesado en Python y Ruby.

¿Fue útil?

Solución

Hay WExpect for Python .

Notas en el archivo wexpect.py (errores tipográficos sin cambios y resaltado agregado)

  

Wexpect es un puerto de pexpext para Windows. Dado que Python para Windows carece   los módulos necesarios (pty, tty, select, termios, fctnl y resource) para ejecutar   Pexpect, era necesario crear un back-end que implementara cualquier función   que se usaron para confiar en estos módulos. Wtty.py es este back-end. En   Las consolas mundiales de Windows no son homogéneas. Pueden usar bajo nivel o alto   funciones de entrada y salida de nivel, y para tratar correctamente ambos casos dos   Los procesos hijo se crean para instacne de Spawn, con un hijo intermedio   que puede leer continuamente desde la consola y enviar esos datos a través de una tubería   a una instancia de wtty. Spawner.py es responsable de la lectura y las tuberías   datos.

     

Dejé todo el código intacto que pude y también intenté dejar tantos comentarios   intacto es posible (especialmente para funciones que no han sido modificadas)   de los comentarios serán engañosos en su relación con el sistema operativo específico   funcionalidad Además, las funciones sendcontrol y sendeof no están implementadas en   esta vez, ya que no pude encontrar versiones significativas de Windows de estas funciones.
  Además, las consolas no tienen descriptores de archivos asociados en Windows, por lo que   La variable global child_fd siempre será None.

Otros consejos

winpexpect es un puerto nativo de pexpect para Windows. Se puede encontrar aquí:

https://github.com/geertj/winpexpect

Puede usar el indicador CMD de Windows.

Necesita tener Python instalado en su instalación de Windows.

Abra un indicador de cmd y ejecute el siguiente comando:

C: \ Users \ xxx > pip install pexpect (si ha configurado la ruta de Python en una variable del sistema)

o

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

La última versión funcional de wexpect se encuentra en http: // sage. math.washington.edu/home/goreckc/sage/wexpect/

Esperemos que se fusionen pronto.

Use pexpect https://github.com/pexpect/pexpect

" Pexpect es Python puro " por lo que se ejecutará en cualquier lugar, sin Cygwin también,

edit: pexpect depende del módulo pty que actualmente está disponible solo para Linux, por lo que Nik sugirió que debería usar wexpect, que es un puerto de pexpect

He usado con éxito Pexpect en Cygwin. Por ahora no hay otra forma debido a POSIX problemas de compatibilidad en Windows.

Otra cosa: WExpect funciona como Pexpect, de hecho, ¡requiere Cygwin! En este punto, PExpect es una mejor opción.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top