2010-08-19 2 views
2

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

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

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

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

ответ

8

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

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

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

+0

Благодарим вас за ответ. – Codeape

Смежные вопросы