Я пытаюсь сделать долгую операцию, но pexpect с аргументом тайм-аута, кажется, не изменяет отрезок времени, прежде чем исключение тайм-аута будет запущено. Вот мой код:
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)
Исключение показывает, что timeout=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
Похоже, что это работает, если вы указываете только тайм-аут в вызове .spawn, вы не можете его переопределить или использовать timeout = 300 в вызове .expect отдельно.