2009-06-25 12 views

Odpowiedz

17

Istnieje WExpect for Python.

Notatki w pliku wexpect.py (literówki niezmienione oraz podkreślenie dodane)

Wexpect jest port pexpext do systemu Windows. Ponieważ python dla systemu Windows nie ma wymaganych modułów (pty, tty, select, termios, fctnl i resource) do uruchomienia w celu wykonania , konieczne było utworzenie zaplecza, w którym zaimplementowano dowolne funkcje , które były używane w oparciu o te moduły. . Wtty.py to jest back-end. W konsole świata Windows nie są jednorodne. Mogą używać niskiego lub wysokiego poziomu funkcji wejściowych i wyjściowych poziomu i prawidłowo obsłużyć oba przypadki: dwa procesy potomne są tworzone dla instacne Spawn, z intermidowanym dzieckiem , które może ciągle czytać z konsoli i przesyłać te dane przez rurę do instancji pomostu. Spawner.py jest odpowiedzialny za czytanie i przesyłanie danych .

Zostawiłam tyle kodu nienaruszony, jak mogłem, a także starał się zostawić jak najwięcej komentarzy nienaruszone jest możliwe (espicially dla funkcji, które nie zostały zmienione) tak wiele uwag będzie mylące w stosunku do ich os specyficzna funkcja . Również, funkcje sendcontrol i sendeof są niezimplementowane tym razem pod numerem , ponieważ nie mogłem znaleźć znaczących wersji tych funkcji dla systemu Windows.
Ponadto konsole nie mają skojarzonych deskryptorów fild w systemie Windows, więc zmienna globalna child_fd zawsze będzie mieć wartość None.

+0

@Symmetric: zmieniłeś link, aby wskazywał [ 'winpexpect'] (http: // bitbucket .org/geertj/winpexpect). Ale ['wexpect'] (http://sage.math.washington.edu/home/goreckc/sage/wexpect/) to inny moduł. – jfs

+0

@JF.Sebastian: Dobre miejsce, stare linki zostały zerwane, więc nie mogłem znaleźć wiele informacji na temat Wexpect. Naprawiony. – Symmetric

2

Zastosowanie pexpect https://github.com/pexpect/pexpect

"Pexpect jest czysty Python", więc to będzie działać w dowolnym miejscu, bez Cygwin też

edit: pexpect zależy od modułu pty, która jest obecnie dostępna tylko dla Linuksa, tak jak Nik zasugerował, że powinieneś używać wexpect, który jest portem pexpect

0

Wiem, że to stary post, ale już z powodzeniem stosowany Pexpect pod Cygwin. Na razie nie ma innej drogi z powodu problemów ze zgodnością POSIX w systemie Windows.

Inna sprawa: WExpect działa jak Pexpect, w rzeczywistości wymaga Cygwin! W tym momencie PExpect jest lepszym wyborem.

nadzieję, że pomoże

Fabio

5

Można użyć okna CMD poprosi.

Musisz mieć zainstalowany python w oknach.

Otwórz okno polecenia cmd i wykonaj poniższe polecenie.

C:\Users\xxx>pip install pexpect (jeśli ustawiony Pythona ścieżki w zmiennej systemowej)

lub

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 
Powiązane problemy