【发布时间】:2016-01-28 11:02:08
【问题描述】:
我正在寻找一种 Python 方式来读取和写入流(在 IOBase 层次结构中),而无需通过 seek() 和 tell() 管理流位置。这类似于套接字流的预期工作方式,其中接收端将能够在接收字节时连续读取。
我尝试过使用 BufferedReader 和 BufferedWriter 都附加到同一个原始流,但一个操作会影响另一个流的位置。 seek()/tell() 似乎直接传递到底层原始流。是否有其他 IOBase 类型可用于有效地充当 IO 流,其中支持并发输入和输出而无需管理流位置(类似于 C++ stringstream >> 和
谢谢!
>>> import io
>>> buf = io.BytesIO()
>>> r = io.BufferedReader(buf)
>>> w = io.BufferedWriter(buf)
>>> w.write('foo bar')
7L
>>> r.read(1)
''
>>> r.tell()
0L
>>> w.flush()
>>> r.tell()
7L
>>> r.flush()
>>> r.tell()
7L
>>> w.tell()
7L
>>> buf.tell()
7L
【问题讨论】:
标签: python inputstream