telnetlib TypeError - PullRequest
       7

telnetlib TypeError

0 голосов
/ 05 марта 2010

Я изменяю скрипт на python, чтобы массово вносить изменения в руку, полную переключателей через telnet:

import getpass
import sys
import telnetlib

HOST = "192.168.1.1"
user = input("Enter your remote account: ")
password = getpass.getpass()

tn = telnetlib.Telnet(HOST)

tn.read_until("User Name: ")
tn.write(user + "\n")
if password:
    tn.read_until("Password: ")
    tn.write(password + "\n")

tn.write("?\n")
tn.write("exit\n")

Когда скрипт выполняется, я получаю «Ошибка типа: ожидается объект с интерфейсом буфера». Любое понимание будет полезно.

1 Ответ

2 голосов
/ 06 марта 2010

За документы , read_until спецификации (цитата, мой акцент):

Читать до заданной байтовой строки, ожидается, встречается

Вы не передаете строку байт в Python 3, например ::

tn.read_until("User Name: ")

Вместо этого вы передаете строку text , которая в Python 3 означает строку Unicode.

Итак, измените это на

tn.read_until(b"User Name: ")

форма b"..." - это один из способов указать литерал byte string.

(Аналогично для других подобных вызовов, конечно).

...