Как решить вывод парамико странного формата - PullRequest
0 голосов
/ 07 июня 2019

Я работаю над небольшой автоматизацией с 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 $

Почему это происходит и как я могу это решить?

Кстати: использование Pycharm IDE от Mac

Спасибо!

1 Ответ

0 голосов
/ 19 июня 2019

Если единственная проблема связана с b '' вокруг вашего результата, вам нужно преобразовать его в строку.

Когда вы получаете информацию от myShell, вы получаете ее в байтах. Если вы хотите преобразовать его в строку, вы должны сделать что-то вроде

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

Обратите внимание, однако, что это предполагает, что ваше сообщение было закодировано с использованием протокола utf-8, который используется по умолчанию.

...