Что может ожидать, что Pexpect не может сделать? - PullRequest
2 голосов
/ 19 августа 2010

Я собираюсь начать использовать Pexpect. На домашней странице Pexpect я нахожу это:

В: Почему бы просто не использовать Expect?

A: Я люблю Это. Это великолепно. Я выручил меня из некоторые настоящие джемы, но я хотел что-то это сделало бы 90% того, что мне нужно от Ожидать; быть 10% от размера; и разрешить мне написать свой код на Python вместо TCL. Pexpect не такой большой как ожидается, но Pexpect делает все Я когда-либо использовал Expect для.

Разница между Pexpect и Expect составляет 10%. Поэтому мой вопрос в том, что это за разница в 10%. Что может ожидать Expect, а Pexpect не может.

1 Ответ

8 голосов
/ 28 августа 2010

Этот вопрос (" Что может ожидать Expect, а Pexpect не может ") немного вводит в заблуждение.Дело не в том, что Pexpect не может делать то, что может ожидать;это то, что Expect имеет много дополнительной поддержки, чтобы упростить этот вид программирования.

В качестве примера возьмем команду взаимодействия, которая позволяет пользователю напрямую взаимодействовать с порожденным процессом.В Pexpect это все, что взаимодействует.(И, как вы говорите, этого может быть достаточно для ваших нужд.) В отличие от этого, взаимодействие Expect поддерживает обнаружение паттернов во время взаимодействия, объединение нескольких порожденных процессов и т. Д. Конечно, вы можете делать все это, кодируя его самостоятельно.Но ваш код будет длиннее - иногда намного длиннее, потому что вам, по сути, придется переписать свой собственный интерфейс, вам придется отлаживать его и т. Д. Фактически, вы, возможно, уже сталкивались с этими ситуациями, но не понимали, насколько прощеэквивалентный код Expect будет.

Конечно, дополнительная поддержка может быть более чем компенсирована вашими предпочтениями Python.: -Р

...