如何解决paramiko输出奇怪的格式

时间:2019-06-07 20:13:09

标签: python pycharm 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

谢谢!

2 个答案:

答案 0 :(得分:0)

如果唯一的问题是结果中的b'',则必须将其转换为字符串。

当您从“ myShell”接收信息时,您将以字节为单位接收信息。如果要将其转换为字符串,可以执行类似的操作

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

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

答案 1 :(得分:-1)

由于结果包含ASCII转义码,decode()无法将其转换为字符串,因此结果不会转换为字符串。