Filtroscriptor de tubería incorrecta cuando se lee desde stdin en python

Duplicado de esta pregunta. Vota para cerrar.

Considere esto en la línea de comandos de Windows.

scriptA.py | scriptB.py 

En scriptA.py:

 sys.stdout.write( "hello" ) 

En scriptB.py:

 print sys.stdin.read() 

Esto genera el siguiente error:

 c:\> scriptA.py | scriptB.py close failed: [Errno 22] Invalid argument Traceback (most recent call last): File "c:\scriptB.py", line 20, in  print sys.stdin.read() IOError: [Errno 9] Bad file descriptor 

El mensaje de “cierre fallido” parece provenir de la ejecución de scriptA.py.

No importa si uso sys.stdin.read (), sys.stdin.read (1), sys.stdin.readlines () etc. etc.

Que pasa

Duplicado de esta pregunta. Vota para cerrar.

Parece que la redirección stdin / stdout no funciona cuando se inicia desde una asociación de archivos. Esto no es específico de python, pero es un problema causado por win32 cmd.exe.

Consulte: http://mail.python.org/pipermail/python-bugs-list/2004-August/024920.html