如何将大型通用Python对象拆分为块

如何将大型通用Python对象拆分为块,python,object,split,pickle,large-data,Python,Object,Split,Pickle,Large Data,我有一个大型的通用Python对象,我没有关于它的信息。 我需要将此对象拆分为更小的块,以满足存储需求 希望有人能帮上忙,Omer。将其删除并分割结果数据 您不能只序列化对象的“一部分”,因为在一般情况下没有“对象的一部分”这样的东西,您需要了解其内部结构,才能将其拆分为您所说的不具备的部分 但是,您可以使用(写入类似文件的对象)并向其传递一个自定义类似文件的对象,该对象将在接收结果数据时分割结果数据 例如,这里有一个类似文件的对象,它将数据写入2GiB块中的文件(在本例中,我将块大小设置为4M

我有一个大型的通用Python对象,我没有关于它的信息。 我需要将此对象拆分为更小的块,以满足存储需求

希望有人能帮上忙,Omer。

将其删除并分割结果数据

您不能只序列化对象的“一部分”,因为在一般情况下没有“对象的一部分”这样的东西,您需要了解其内部结构,才能将其拆分为您所说的不具备的部分

但是,您可以使用(写入类似文件的对象)并向其传递一个自定义类似文件的对象,该对象将在接收结果数据时分割结果数据

例如,这里有一个类似文件的对象,它将数据写入2GiB块中的文件(在本例中,我将块大小设置为4MiB):

运行该示例后,我们有:

$ ls -l *.pickle
-rwxrwx---+ 1 Sasha None 4194304 Dec  4 16:02 data.part00.pickle
-rwxrwx---+ 1 Sasha None 4194304 Dec  4 16:02 data.part01.pickle
-rwxrwx---+ 1 Sasha None 4194304 Dec  4 16:02 data.part02.pickle
-rwxrwx---+ 1 Sasha None 4194304 Dec  4 16:02 data.part03.pickle
-rwxrwx---+ 1 Sasha None 4194304 Dec  4 16:02 data.part04.pickle
-rwxrwx---+ 1 Sasha None  294912 Dec  4 16:02 data.part05.pickle

我可以在一个对象的短语上使用pickle吗?这样我就可以用盐腌制它了chunks@OmerB我不知道你说的“短语”是什么意思<代码>pickle将对象作为一个整体序列化,但您可以控制结果数据的流动方式。例如,写入一个类似文件的对象,这样您就可以向它传递一些自定义的类似文件的对象,这些对象将接受一些数据,然后阻塞,直到它可以接受更多或更多的数据。是的,这正是我想做的,但我不知道如何仅将通用对象的一部分发送到转储函数。我需要一种方法来处理二进制序列之类的对象。@OmerB请参阅更新。(我将读取数据作为一个大小留给读取器。)
$ ls -l *.pickle
-rwxrwx---+ 1 Sasha None 4194304 Dec  4 16:02 data.part00.pickle
-rwxrwx---+ 1 Sasha None 4194304 Dec  4 16:02 data.part01.pickle
-rwxrwx---+ 1 Sasha None 4194304 Dec  4 16:02 data.part02.pickle
-rwxrwx---+ 1 Sasha None 4194304 Dec  4 16:02 data.part03.pickle
-rwxrwx---+ 1 Sasha None 4194304 Dec  4 16:02 data.part04.pickle
-rwxrwx---+ 1 Sasha None  294912 Dec  4 16:02 data.part05.pickle