Unbuffered mode

Hamish Allan hamish at gmail.com
Wed Feb 13 11:20:32 EST 2008


Further to my query about trying to make Python run unbuffered, I have
discovered that a SyntaxError seems to cause Python to close its SSH
connection:

$ ssh localhost python -u
,
  File "<stdin>", line 1
    ,
    ^
SyntaxError: invalid syntax
$

Whereas a different sort of error (e.g. NameError) does not:

$ ssh localhost python -u
pront
[^D]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'pront' is not defined
$

Can anyone tell me why?!

Thanks,
Hamish

On Feb 13, 2008 1:12 AM, Hamish Allan <hamish at gmail.com> wrote:
> Hi,
>
> The man page for python says:
>
> "-u     Force stdin, stdout and stderr to be totally unbuffered."
>
> However, when I try:
>
> $ ssh localhost python -u
> print 'hello, world'
> [^D]
> hello, world
> $
>
> Nothing happens until I send that EOF. I'm pretty sure it's not SSH
> that's buffering because when I try:
>
> $ ssh localhost bash
> echo 'hello, world'
> hello, world
> [^D]
> $
>
> The 'hello, world' comes back immediately (I don't need to send the EOF).
>
> I've also tried:
>
> $ ssh localhost python -u
> import sys
> sys.stdout.write('hello, world\n')
> sys.stdout.flush()
> [^D]
> hello, world
> $
>
> Again, nothing happens until I send the EOF. How can I get Python to
> run over SSH unbuffered?
>
> Thanks,
> Hamish
>



More information about the Python-list mailing list