Popen.stdin.write не работает с Python3
Я инициирую подключение telnet к удаленному устройству и начинаю отправку команд. Ниже приведен простой пример, который устанавливает telnet-соединение с удаленным устройством и начинает посылать команды specfifc устройства [т.е. "vr", "KP on"]
import subprocess
telnet_client = subprocess.Popen(
["telnet", "192.168.1.120", "4002"],
stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE,
universal_newlines=True)
#Get Version
telnet_client.stdin.write('vr\n')
telnet_client.stdin.flush()
#Power on the device
telnet_client.stdin.write('kp on\n')
telnet_client.stdin.flush()
#Factory default
telnet_client.stdin.write('fd\n')
telnet_client.stdin.flush
Каждый stdin.write()
не выбрасываетлюбое исключение или любая ошибка, просто возвращает количество записанных байтов. Но на самом деле сообщение не отправляется.
Ubuntu machine1:
Я заметил, что после установки Python3 на машине вышеописанная реализация перестала работать с Python2.7
Ubuntu machine2:
На другом компьютере с Ubuntu после установки Python3 описанная выше реализация работает с Python2.7, но не работает с Python3.
Так что обычная вещь в любом направлении Popen.stdin.write
не работаетработать с Python3. Я считаю, что некоторые пакеты портят систему.
Пожалуйста, дайте мне знать об этом