pexpect не имеет sendcontrol()
метод. В вашем примере вы пытаетесь отправить пустую строку. Чтобы сделать это, используйте:
id.sendline('')
Если вам нужно отправить символы реального управления, то вы можете send()
строка, которая содержит соответствующее значение символа. Например, чтобы отправить Control-C Вы:
id.send('\003')
или:
id.send(chr(3))
Ответы на комментарий # 2:
К сожалению, я typo'ed имя модуля - - теперь исправлено. Что еще более важно, я смотрел старую документацию на noah.org, а не на latest documentation at SourceForge. Более новая документация показывает метод sendcontrol()
. Он принимает аргумент, который является либо буквой (например, sendcontrol('c')
отправляет элемент управления-C), либо один из множества символов пунктуации, представляющих управляющие символы, которые не соответствуют буквам. Но на самом деле sendcontrol()
- это просто удобная обертка вокруг метода send()
, который вызывает sendcontrol()
после того, как он рассчитал фактическое значение, которое вы хотите отправить. Вы можете прочитать источник для себя в line 973 of this file.
Не понимаю, почему id.sendline('')
не работает, особенно учитывая, что он, по-видимому, работает для отправки имени пользователя в программу ftp. Если вы хотите попробовать использовать sendcontrol()
вместо то, что будет либо:
id.sendcontrol('j')
для передачи символа строки (который является Control-J или десятичное 10) или:
id.sendcontrol('m')
отправить перевозки Возврат (который является управляющим-m или десятичным числом 13).
Если они не работают, пожалуйста, объясните, что именно происходит, и как это отличается от того, что вы хотели или ожидали.
Привет, ottomeister, спасибо за вашу помощь. Я действительно предлагаю это. На самом деле я использую pexpect модуль python, который я прочитал в документации и нашел sendcontrol. Я попробовал это с помощью sendline (''), но это не помогло. В документации он привел пример sendcontrol ('g'), но он не объяснил, что делает g-письмо, и какой ключевой код нужно искать. – SSSSSam
Ты звезда, спасибо тебе, оттомист, она отлично работала! странно, что он работал с id.sendcontrol ('m') j и d. если я могу спросить эти буквы j, m, что именно они? Большое вам спасибо за вашу замечательную помощь. он не мог получить ответ лучше. – SSSSSam