Python telnetlib只读打印“bs”

时间:2012-10-11 13:18:12

标签: python telnetlib

我正在尝试使用Python进行一些telnet自动化(只有 Python)。当我尝试在函数read_until中打印我的一些读数时,我看到的只是一系列bs - 即bs,就像在backspace字符中一样,不是别的。 : - )

有没有人知道我可以在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。

1 个答案:

答案 0 :(得分:1)

我在这里想出了问题。我尝试用\n\r编写命令,但不是两者都合并。当我改为'\r\n'时,我得到了预期的输出。