使用Python 2.7版本。以下是我的示例代码。
import StringIO
import sys
buff = StringIO.StringIO()
buff.write("hello")
print buff.read()
在上面的程序中,read()返回了空值,而getvalue()返回了“hello”。有人能帮我解决这个问题吗?我需要使用read(),因为我的后续代码涉及读取“n”个字节。
buff.seek(0)
来实现。""
,缓冲区位置为 0
。
你执行 buff.write("hello")
。显然,缓冲区的值现在是hello
。但是,缓冲区位置现在是 5。当你调用 read()
时,已经没有超过位置 5 的内容可供读取了!因此,它返回一个空字符串。In [38]: out_2 = StringIO.StringIO('not use write') # be initialized to an existing string by passing the string to the constructor
In [39]: out_2.getvalue()
Out[39]: 'not use write'
In [40]: out_2.read()
Out[40]: 'not use write'
或者In [5]: out = StringIO.StringIO()
In [6]: out.write('use write')
In [8]: out.seek(0)
In [9]: out.read()
Out[9]: 'use write'
read()
的函数。 - hjpotter92dir(StringIO.StringIO)
。 - Joel Cornettread()
方法。 - jamylak