Problem while doing a cat on a tabbed file with pexpect
Steven D'Aprano
steve+comp.lang.python at pearwood.info
Sun Jan 15 21:01:35 EST 2012
On Sun, 15 Jan 2012 09:51:44 -0800, Saqib Ali wrote:
> I am using Solaris 10, python 2.6.2, pexpect 2.4
Are you sure about that? As far as I can see, pexpect's current version
is 2.3 not 2.4.
> I create a file called me.txt which contains the letters "A", "B", "C"
> on the same line separated by tabs.
>
> My shell prompt is "% "
>
> I then do the following in the python shell:
>
>
>>>> import pexpect
>>>> x = pexpect.spawn("/bin/tcsh")
Can you try another shell, just in case tcsh is converting the tabs to
spaces?
>>>> x.sendline("cat me.txt")
> 11
What happens if you do this from the shell directly, without pexpect? It
is unlikely, but perhaps the problem lies with cat rather than pexpect.
You should eliminate this possibility.
>>>> x.expect([pexpect.TIMEOUT, "% "])
> 1
>>>> x.before
> 'cat me.txt\r\r\nA B C\r\n'
Unfortunately I can't replicate the same behaviour, however my setup is
different. I'm using pexpect2.3 on Linux, and I tried it using bash and
sh but not tcsh. In all my tests, the tabs were returned as expected.
(However, the x.expect call returned 0 instead of 1, even with the shell
prompt set correctly.)
--
Steven
More information about the Python-list
mailing list