python - 如何解决 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
谢谢!
解决方案
如果唯一的问题是结果周围的 b'' ,那么您必须将其转换为字符串。
当您收到来自“myShell”的信息时,您是以字节为单位的。如果你想把它转换成一个字符串,你会做类似的事情
info = myShell.recv(2048)
decoded_info = info.decode('utf-8')
print(decoded_info)
但是请注意,这假定您的消息是使用默认的 utf-8 协议编码的。
推荐阅读
- node.js - 从 module.exports nodeJS 中的另一个函数调用函数
- php - git 致命:无法创建工作树目录“projectexpat”:权限被拒绝
- r - 如何将引导主题应用于 DT 表中的按钮
- reactjs - 从异步存储恢复 MOBX 存储偶尔会出错
- html - 使用 span 代替复选框
- java - 如何使此服务器在网络的多台计算机上工作
- xamarin - Xamarin 添加 Semi-Const 标头以重新调整 API 调用
- c++ - 处理小于 cpu 数据总线的数据类型。(将 C++ 转换为机器代码。)
- google-sheets - 尝试使用 Query 将数据从一个选项卡复制到另一个选项卡
- python-3.x - 如何使用来自用户的密码加密数据