У меня есть куча цисок, snr, eltex и для управления ими используется libnet-telnet-perl (libnet-telnet-cisco-perl).
Можно делать что угодно. Подозреваю, что существует подобная библиотека и для питона.
А то, что у Вас все улетает одной строкой, то, возможно, каждую отдельную строку надо экранировать \n.
А в каком именно плане дружба с expect не срослась?
Но, по-моему, рутинная задача по закрытию портов проще всего делается по snmp.