[Python] script bash-pipe compatibile

Manlio Perillo manlio.perillo a gmail.com
Sab 24 Ott 2009 16:37:04 CEST


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Pietro Battiston ha scritto:
> [...]
> #! /usr/bin/python
> 
> import sys
> 
> while True:
>         r = sys.stdin.readline()
>         if not r:
>             break
>         try :
>             sys.stdout.write(r)
>         except:
>             break
> 
> 
> a me funziona...
> 

A me no.

Controlla meglio.

Su molti run, a volte ottieni un eccezione.
L'eccezione è causata dal runtime di Python, che chiama il distruttore
di stdout/stderr, il quale a sua volta chiama close che fallisce.

Il problema è che:

 * non sembra sia possibile evitare che il traceback venga scritto su
  stderr.
  Modificare sys.excepthook non funziona

 * non sembra sia possibile dire a Python che stdout/stderr va
  considerato chiuso, e che quindi close non va chiamato


Credo che questo sia un problema interessante.

> [...]


Ciao  Manlio
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkrjERAACgkQscQJ24LbaUSAaACeJW4Oze88VIunNvlrVey0so9r
5dYAn35BTi3rVLLbffPUcLKLSxdoITLd
=magB
-----END PGP SIGNATURE-----


Maggiori informazioni sulla lista Python