libreria - Haciendo io.BufferedReader desde sys.stdin en Python2
libreria io en python (1)
También estaba buscando el mismo código por la misma razón (usando Peek) hace un tiempo. Y esto funciona:
reader = io.open(sys.stdin.fileno())
¿Cómo puedo hacer un objeto BufferedReader a partir de un objeto de archivo estándar, como sys.stdin o lo que obtienes de ''abrir''?
(Antecedentes: Necesito un método peek (), que los objetos de archivo estándar no pueden tener. Cualquier sugerencia para resolver este problema también es bienvenida).
Habría esperado que esto funcionara, pero no funciona:
>>> import sys
>>> import io
>>> io.BufferedReader(sys.stdin)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: ''file'' object has no attribute ''readable''
(Esto es Python 2.7)
Hah, lo tengo, al menos para cualquier cosa que tenga un descriptor de archivo.
stream = sys.stdin, or open(...), etc.
reader = io.open(stream.fileno(), mode=''rb'', closefd=False)