0

我正在尝试使用 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。

4

1 回答 1

1

我在这里发现了问题。我试着用两者写我的命令,\n\r不是两者结合。当我更改为 时'\r\n',我得到了预期的输出。

于 2012-10-11T15:59:17.340 回答