繁体   English   中英

在Python2中从sys.stdin创建io.BufferedReader

[英]Making io.BufferedReader from sys.stdin in Python2

如何从标准文件对象(如sys.stdin)或从“打开”获得的内容中创建BufferedReader对象?

(背景:我需要一个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)

我之前也在寻找相同的代码(使用peek)。 这有效:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM