开发者

Making io.BufferedReader from sys.stdin in Python2

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:

&g开发者_如何学Ct;>> 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)


I was also looking for the same code for the same reason (using peek) awhile ago. And this works:

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

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜