我正在尝试使用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。
答案 0 :(得分:1)
我在这里想出了问题。我尝试用\n
和\r
编写命令,但不是两者都合并。当我改为'\r\n'
时,我得到了预期的输出。