Popen.stdin.write 不适用于 Python3
我正在启动到远程设备的 telnet 连接并开始发送命令。下面是一个简单的示例,它与远程设备建立 telnet 连接并开始发送设备特定命令 [ie "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
Everystdin.write()没有抛出任何异常或错误,只是返回写入的字节数。但实际上消息没有发送。
Ubuntu机器1:
我在机器上安装 Python3 后观察到,上述实现停止使用 Python2.7
Ubuntu机器2:
在安装 Python3 后的另一台 Ubuntu 机器上,上述实现适用于 Python2.7,但不适用于 Python3。
如此常见的事情,在任何方向Popen.stdin.write上都不适用于 Python3。我相信有些软件包正在破坏系统。
请让我知道这件事
慕桂英546537
拉风的咖菲猫
相关分类