使用Python,我如何像读取文件一样在内存中读取/写入数据?

Using Python, how do I to read/write data in memory like I would with a file?

我习惯于C,我建立了数据处理类/函数来处理流对象而不是文件。我想知道如何修改以下代码,以便它可以处理内存中的二进制数据流,而不是文件句柄。

1
2
3
4
5
6
def get_count(self):
    curr = self.file.tell()
    self.file.seek(0, 0)
    count, = struct.unpack('I', self.file.read(c_uint32_size))
    self.file.seek(curr, 0)
    return count

在这种情况下,代码假定self.file是一个文件,如下所示打开:

1
file = open('somefile.data, 'r+b')

我应该如何使用相同的代码,而要做类似的事情:

1
file = get_binary_data()

其中get_binary_data()返回二进制数据字符串。尽管代码未显示它,但我还需要写入流中(我认为不值得为此发布代码)。

此外,如果可能的话,我也希望新代码也能够处理文件。


您可以使用StringIO.StringIO的实例(或更快的cStringIO.StringIO)为内存数据提供类似文件的接口。


在这里查看python的StringIO模块,可能是您想要的。


使用StringIO。


看看'StringIO'(将字符串作为文件读取和写入)


我喜欢答案的时机。 (我的除外)

我们可以看到以毫秒为单位的响应时间吗?

of-course StringIO