Подтвердить что ты не робот

Создание io.BufferedReader из sys.stdin в Python2

Как я могу создать объект BufferedReader из стандартного файлового объекта, например sys.stdin или что вы получаете из 'open'?

(Справочная информация: Мне нужен метод peek(), с которым стандартные объекты файлов не работают. Любые предложения для решения этой проблемы также приветствуются.)

У меня бы ожидалось, что это сработает, но это не так:

>>> 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'

(Это Python 2.7)

Да, получилось, по крайней мере, для всего, что имеет файловый дескриптор.

stream = sys.stdin, or open(...), etc.
reader = io.open(stream.fileno(), mode='rb', closefd=False)
4b9b3361

Ответ 1

Я тоже искал один и тот же код по той же причине (используя peek) некоторое время назад. И это работает:

reader = io.open(sys.stdin.fileno())