У меня есть программа, которая входит в систему на сервере и выдает команды. Результаты распечатываются в конце сценария. Приведенный ниже код показывает скрипт, который я создал для передачи команд через ssh.
import pexpect
ssh_newkey = 'Are you sure you want to continue connecting'
# my ssh command line
p=pexpect.spawn('ssh user@00.00.00.00')
i=p.expect([ssh_newkey,'password:',pexpect.EOF])
if i==0:
print "I say yes"
p.sendline('yes')
i=p.expect([ssh_newkey,'password:',pexpect.EOF])
if i==1:
print "I have entered the password. I will now flip camera through ",
p.sendline("user")
i=p.expect('user@hol-NA:')
p.sendline("cd /opt/ad/bin")
i=p.expect('user@hol-NA:')
p.sendline("./ptzflip")
i=p.expect('user@hol-NA:')
elif i==2:
print "I either got key or connection timeout"
pass
results = p.before # print out the result
print results
Результаты, которые распечатывает программа:
Value = 1800
Min = 0
Max = 3600
Step = 1
Я хочу получить распечатанные значения.
В ответ на вопросы ниже. Я хочу захватить, например. «Значение» в качестве переменной и «1800» в качестве значения. Я попытался выделить его в словаре, как указано ниже, но я получаю сообщение об ошибке. Когда я вхожу:
results_dict = {}
for line in results:
name, val = line.split(' = ')
results_dict[name] = val
Я получаю сообщение об ошибке:
Traceback (most recent call last):
File "ptest.py", line 30, in <module>
name, val = line.split(' = ')
ValueError: need more than 1 value to unpack
Когда я проверяю этот код в Python, он сохраняет эти значения в виде строки. Хранит его как:
'/opt/ad/bin$ ./ptzflip\r\nValue = 1800\r\nMin = 0\r\nMax = 3600\r\nStep = 1\r\n'
Может кто-нибудь помочь в этой проблеме. Спасибо