Retrieving Values with p.expect
<p>I have a program that logs into a server and issues commands. The results are printed out at the end of the script. The below code shows the script I have created to pass commands through ssh.</p>

<pre><code>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
</code></pre>

<p>The results that the program prints out is:</p>

<pre><code>Value = 1800
Min = 0
Max = 3600
Step = 1
</code></pre>

<p>I want to capture the values that are printed out.</p>

<p>In reponse to the questions below. I want to capture eg. 'Value' as a variable and '1800' as its value. I have tried to separate it in a dictionary as mentioned below but I get an error. When I enter:</p>

<pre><code>results_dict = {} 
for line in results: 
    name, val = line.split(' = ') 
    results_dict[name] = val
</code></pre>

<p>I get an error:</p>

<pre><code>Traceback (most recent call last):
  File "ptest.py", line 30, in &lt;module&gt;
    name, val = line.split(' = ') 
ValueError: need more than 1 value to unpack
</code></pre>

<p>When I check this code in Python it stores these values as a string. It stores it as:</p>

<pre><code>'/opt/ad/bin$ ./ptzflip\r\nValue = 1800\r\nMin = 0\r\nMax = 3600\r\nStep = 1\r\n'
</code></pre>

<p>Can anyone help in this problem. Thanks</p>
