[BangPypers] problems while using pexpect. pexpect.TIMEOUT always...

Senthil Kumaran orsenthil at gmail.com
Mon Jun 8 19:38:43 CEST 2009


On Mon, Jun 08, 2009 at 10:39:00PM +0530, Gora Mohanty wrote:
> > And here is my pexpect script:
> > 
> > http://paste.pocoo.org/show/121788/
> 
> I am not very familiar with pexpect, but from what I remember
> of Expect, there are a couple of issues here:
> o You should be using p.expect() instead of time.sleep()
> o After issuing a 'fortune' command you should be expecting a
>   shell prompt.
> o You should explicitly close the connection by logging out

Thank you, Gora.
Yes, the main problem was the need to 'explicitly close the connection
by doing a logout'. 

I agree with point 1 too; but I read in some discussion that perhaps
read() was sending request too soon, so I had placed time.sleep() at
various places...  illogically before sendline too.

> Please see http://paste.pocoo.org/show/121800/ where I have used
> 'ls' instead of 'fortune' as I did not have the latter installed.
> The pattern matches anything, i.e., whatever be the shell prompt,
> and child.expect also matches EOF.

Yes, this way worked; Adding child.sendline('logout') before I did
child.read() in the original script also worked.

I got to check with pexpect a little more to see if I can just get the
output of a command only instead of the whole session.

Paramiko, is a good module to with ssh related stuff in python, but
unfortunately that is not pure python, So bundling as an option gets
ruled out.

-- 
Senthil




More information about the BangPypers mailing list