我根据协议缓冲区的.proto方案创建了大量二进制结构的数据文件(差不多150个)。有没有有效的解决方案如何将所有文件合并到一个大的二进制数据文件而不会丢失任何信息?
答案 0 :(得分:1)
如果您的方案允许,您可以合并现有数据。
message People {
repeated Person person = 1;
}
message Person {
required int32 id = 1;
required string name = 2;
optional string email = 3;
}
两个现有的二进制文件,每个文件包含一个Person
。
person1.bin
person2.bin
import p_pb2
people = p_pb2.People()
people.person.add().ParseFromString(open("person1.bin", "rb").read())
people.person.add().ParseFromString(open("person2.bin", "rb").read())
with open("people.bin", "wb") as o:
o.write(people.SerializeToString())
现在,文件people.bin
包含People
个实例,其中包含Person
个实例。