Время ожидания pexpect не используется, используется только значение по умолчанию 30 - PullRequest
6 голосов
/ 27 июля 2010

Я пытаюсь выполнить длительную операцию, но pexpect с аргументом timeout, похоже, не меняет промежуток времени до срабатывания исключения timeout. Вот мой код:

child = pexpect.spawn('scp file user@:/temp', timeout=300)

whichMatched = child.expect(['(?i)Password','Are you sure you want to continue connecting (yes/no)?'], timeout=300)

Исключение показывает, что тайм-аут = 30, что является значением по умолчанию.

after: <class 'pexpect.TIMEOUT'>
match: None
match_index: None
exitstatus: None
flag_eof: False
pid: 6222
child_fd: 4
closed: False
timeout: 30
delimiter: <class 'pexpect.EOF'>
logfile: None
logfile_read: None
logfile_send: None
maxread: 2000
ignorecase: False
searchwindowsize: None
delaybeforesend: 0.05
delayafterclose: 0.1
delayafterterminate: 0.1

Ответы [ 2 ]

9 голосов
/ 27 июля 2010

Похоже, что это работает, если вы указываете только время ожидания в вызове .spawn, вы не можете переопределить или использовать timeout = 300 в вызове .expect самостоятельно.

6 голосов
/ 09 августа 2013

Только что попробовал следующее и похоже на работу:

child.timeout = 300
child.expect ( "...")

...