Leia STDOUT do Terminal Telnet em Python

Aqui está uma pequena receita do Python que eu uso sempre que tenho que lidar com a obtenção do stdout de um terminal telnet (com mais frequência do que você imagina!).

O código (Python):

import telnetlib


class TelnetWorkers(object):
"""
Creates our connection, holds and handles data.

"""


def __init__(self, IP, PORT):
# IP and PORT are strings
self.connection = telnetlib.Telnet(IP, PORT)
self.data = []

def getMoreData(self):
"""
Reads STDOUT, splits on and strips 'rn'.


Returns list.

"""

# 10 means that we're going to timeout after 10 seconds if
# we don't get any input that satisfies our regex.
cursor
= self.connection.read_until('rn', 10)

# Make sure we have something to work with.
if len(cursor) > 0:
for line in cursor.split(','):
# Sometimes we get empty strings on split.
if line != '':
self.data.append(line)
return self.data

... Add your specific methods here ...

Isso é útil se você estiver recebendo dados, como de rotas de navegação (dados AIS), para um servidor telnet e quiser usar esses dados de alguma forma (decodificação para exibição de mensagem / posição).