用python发送telnet命令

用python发送telnet命令,python,python-3.x,telnet,telnetlib,Python,Python 3.x,Telnet,Telnetlib,我正在尝试用tetnet发送命令,但它不起作用。我在这个论坛上尝试了不同的代码,但是没有人能找到。它用于重新启动设备。我正在使用python 3.6 import telnetlib host = "192.168.1.0" port = 23 timeout = 100 session = telnetlib.Telnet(host, port, timeout) session.write("administrator\n").encode('ascii') session.write(

我正在尝试用tetnet发送命令,但它不起作用。我在这个论坛上尝试了不同的代码,但是没有人能找到。它用于重新启动设备。我正在使用python 3.6

import telnetlib

host = "192.168.1.0"
port = 23
timeout = 100

session = telnetlib.Telnet(host, port, timeout)
session.write("administrator\n").encode('ascii')
session.write("password\n").encode('ascii')
session.write("reboot\n").encode('ascii')
该函数接受一个字节字符串。这可以通过只编码字符串来提供(您尝试对函数返回进行编码),例如

或者在字符串前面加上
b
,如下所示:

import telnetlib

host = "192.168.1.0"
port = 23
timeout = 100

with telnetlib.Telnet(host, port, timeout) as session:
    session.write(b"administrator\n")
    session.write(b"password\n")
    session.write(b"reboot\n")

您是否考虑过使用pexpect?使用pexpect,您可以有条件地指定下一个操作。您的案例非常直截了当,所以可能有些过分,但我建议您学习pexpect,因为它更灵活。
import telnetlib

host = "192.168.1.0"
port = 23
timeout = 100

with telnetlib.Telnet(host, port, timeout) as session:
    session.write(b"administrator\n")
    session.write(b"password\n")
    session.write(b"reboot\n")