Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Python,如何像使用文件一样在内存中读/写数据? 我习惯C++,我构建数据处理类/函数来处理流对象而不是文件。我想知道如何修改下面的代码,以便它能够处理内存中的二进制数据流,而不是文件句柄 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_Python_File_Stream - Fatal编程技术网

使用Python,如何像使用文件一样在内存中读/写数据? 我习惯C++,我构建数据处理类/函数来处理流对象而不是文件。我想知道如何修改下面的代码,以便它能够处理内存中的二进制数据流,而不是文件句柄 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

使用Python,如何像使用文件一样在内存中读/写数据? 我习惯C++,我构建数据处理类/函数来处理流对象而不是文件。我想知道如何修改下面的代码,以便它能够处理内存中的二进制数据流,而不是文件句柄 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,python,file,stream,Python,File,Stream,在这种情况下,代码假定self.file是一个文件,如下所示打开: file = open('somefile.data, 'r+b') 如何使用相同的代码,而不是执行以下操作: file = get_binary_data() 其中get\u binary\u data()返回一个二进制数据字符串。虽然代码没有显示它,但我还需要写入流(我认为不值得为此发布代码) 另外,如果可能的话,我希望新代码也能处理文件。您可以使用的实例(或者更快)为内存中的数据提供类似文件的接口。看看(将字符串作为文

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

file = open('somefile.data, 'r+b')
如何使用相同的代码,而不是执行以下操作:

file = get_binary_data()
其中
get\u binary\u data()
返回一个二进制数据字符串。虽然代码没有显示它,但我还需要写入流(我认为不值得为此发布代码)


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

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

看看(将字符串作为文件读写)

使用。

看看Python的StringIO模块,这可能正是你想要的。

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

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

当然
StringIO


上述链接不起作用是因为(“StringIO和cStringIO”现在在Python 3.0中消失了。它们只存在于2.0中。io在3.0中取代了它们”)。上述链接不起作用是因为(“StringIO和cStringIO”现在在Python 3.0中消失了。它们只存在于2.0中。io在3.0中取代了它们)。上面提到的链接不起作用,因为(“StringIO和cStringIO”现在在Python 3.0中消失了。它们只存在于2.0中。io在3.0中取代了它们。)。上面提到的链接不起作用,因为(“StringIO和cStringIO”现在在Python 3.0中消失了。它们只存在于2.0中。io在3.0中取代了它们。)对此评论表示抱歉,但这似乎是一个传统的答案…@tampe125这是不正确的。StringIO仍然存在于Python3中,它只是被移动到io模块中。