我正在尝试使用 Python(仅纯Python)进行一些 telnet 自动化。当我尝试在函数中打印一些我的阅读内容时read_until
,我看到的只是一系列的bs
' -bs
就像在backspace
角色中一样,而不是其他东西。:-)
有谁知道我是否可以在 on tn
,我的类实例中更改某种设置Telnet
,或者更正这个?或者这是我的主人正在吐回的东西?我已经在telnetlib
库上进行了一些谷歌搜索,但我还没有看到很多人们从Telnet.read_until
函数中输出的例子。
这是我的代码的精简版:
import getpass
import sys
import telnetlib
HOST = "blahblah"
def writeline(data):
local.write(data + '\n')
def read_until(tn, cue, timeout=2):
print 'Before read until "%s"' % cue
print tn.read_until(cue, timeout)
print 'After read until "%s"' % cue
def tn_write(tn, text, msg=''):
if not msg:
msg = text
print 'Before writing "%s"' % msg
tn.write(text)
print 'After writing "%s"' % msg
user = 'me'
password = getpass.getpass()
tn = telnetlib.Telnet(HOST)
read_until(tn, "Username: ")
tn_write(tn, user + "\n", user)
if password:
read_until(tn, "Password: ")
tn_write(tn, password + "\n", 'password')
read_until(tn, "continue")
tn_write(tn, "\n", '<Enter>')
#tn.write("vt100\n")
tn_write(tn, 'main_menu' + '\n', 'start menu')
read_until(tn, 'Selection: ')
我认为这并不重要,但我在 Windows 上使用 Python 2.7。