How can I make a BufferedReader object from a standard file object, like sys.stdin or what you get from 'open'?
(Background: I need a peek() method, which the standard file objects fail at having. Any suggestions to solve this issue are also welcome.)
I'd have sort of expected this to work, but it doesn't:
>>> 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'
(This is Python 2.7)
Hah, got it, at least for anything that has a file descriptor.
stream = sys.stdin, or open(...), etc.
reader = io.open(stream.fileno(), mode='rb', closefd=False)
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…