Python (純粋なPythonのみ) で telnet 自動化を実行しようとしています。関数 で読み取りの一部を出力しようとするとread_until
、一連の が表示bs
されます。これbs
は、backspace
文字のように であり、他のものではありません。:-)
tn
on 、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 を使用しています。