我正在使用 paramiko 连接到 win10 服务器(客户端是 Linux),并且大部分通信都可以。但是当我阅读对命令的响应时(通过 recv()),我看到了一些奇怪的数据。示例:这是对“主机名”的响应,它应该只是“halfdome-win10”,但我读回的是
'\x1b[5;1Hhalfdome-win10
\x1b[5;2Halfdome-win10
\x1b[5;3Hlfdome-win10
\x1b[5;4Hfdome-win10
\x1b[5;5Hdome-win10
\x1b[5;6Home-win10
\x1b[5;7Hme-win10
\x1b[5;8He-win10
\x1b[5;9H-win10
\x1b[5;10Hwin10
\x1b[5;11Hin10
\x1b[5;12Hn10
\x1b[5;13H10
\x1b[5;14H0
'
如果我把它放在一个变量中(比如aa)并打印它,似乎linux shell可以解码并打印正确的值。
>>> print cc
>>>
halfdome-win10
有没有正确的方法从win10 ssh服务器获取数据并以可用的形式解码?
我知道它有 ansi 字符,但将它们取出并没有帮助,我仍然看到响应的简短回声。
- 我正在使用更新的 paramiko
- 我需要使用交互式外壳
- 如果我使用 exec_command 代替标准输出读取预期值(没问题)