Popen.stdin.write 不适用于 Python3我正在启动到远程设备的 telnet 连接并开始发送命令。下面是一个简单的示例,它与远程设备建立 telnet 连接并开始发送设备特定命令 [ie "vr" , "KP on"]import subprocesstelnet_client = subprocess.Popen( ["telnet", "192.168.1.120", "4002"], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True)#Get Versiontelnet_client.stdin.write('vr\n')telnet_client.stdin.flush()#Power on the devicetelnet_client.stdin.write('kp on\n')telnet_client.stdin.flush()#Factory defaulttelnet_client.stdin.write('fd\n')telnet_client.stdin.flushEverystdin.write()没有抛出任何异常或错误,只是返回写入的字节数。但实际上消息没有发送。Ubuntu机器1:我在机器上安装 Python3 后观察到,上述实现停止使用 Python2.7Ubuntu机器2:在安装 Python3 后的另一台 Ubuntu 机器上,上述实现适用于 Python2.7,但不适用于 Python3。如此常见的事情,在任何方向Popen.stdin.write上都不适用于 Python3。我相信有些软件包正在破坏系统。请让我知道这件事
2 回答
拉风的咖菲猫
TA贡献1995条经验 获得超2个赞
这一切都准备好了。
实际上服务器在调用 stdin.flush 后正在接收数据
telnet_client.stdin.write('vr\n')
telnet_client.stdin.flush()
添加回答
举报
0/150
提交
取消