我正在使用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
谢谢!
答案 0 :(得分:0)
如果唯一的问题是结果中的b'',则必须将其转换为字符串。
当您从“ myShell”接收信息时,您将以字节为单位接收信息。如果要将其转换为字符串,可以执行类似的操作
info = myShell.recv(2048)
decoded_info = info.decode('utf-8')
print(decoded_info)
但是请注意,这假设您的消息是使用默认的utf-8协议编码的。
答案 1 :(得分:-1)
由于结果包含ASCII
转义码,decode()
无法将其转换为字符串,因此结果不会转换为字符串。