首页 > 解决方案 > 如何解决 paramiko 输出奇怪的格式

问题描述

我正在使用 python 进行一些自动化,以收集一些与 Splunk 索引相关的数据。所以我虽然使用 paramiko 登录每个索引器实例并获取信息。问题是当我使用发送命令时

myShell = ssh.invoke_shell()
myShell.send('sudo su\n')
time.sleep(1)
print(myShell.recv(2048))

我得到如下结果:

b'Last login: Fri Jun  7 15:56:07 2019 from MiIpAddress\r\r\n\x1b[0;39m[\x1b[0;31m15:56:55\x1b[0;39m][\x1b[1;33muser\x1b[1;34m@\x1b[1;33mhost\x1b[0;39m][\x1b[1;36m/home/user\x1b[0;39m]\x1b[0;39m $

为什么会发生这种情况,我该如何解决?

顺便说一句:从 Mac 使用 pycharm IDE

谢谢!

标签: pythonpycharmparamiko

解决方案


如果唯一的问题是结果周围的 b'' ,那么您必须将其转换为字符串。

当您收到来自“myShell”的信息时,您是以字节为单位的。如果你想把它转换成一个字符串,你会做类似的事情

info = myShell.recv(2048)
decoded_info = info.decode('utf-8')
print(decoded_info)

但是请注意,这假定您的消息是使用默认的 utf-8 协议编码的。


推荐阅读