我有一个pb文件abc.pb文件。我需要通过保留其格式读取文件,即不想将pb文件转换为字符串,然后再次重新转换它。目前我正在尝试选择
with open(data, "rb") as file_handle: data = file_handle.read()
但是这个把它转换成字节。如何把它们读成消息。有人能帮忙吗?
b1uwtaje1#
Protobuf是一种二进制编码,通常使用模式(类型)来解码消息。Protobuf类型在proto文件中描述,并被编译(使用protoc)为特定于语言的存根,这些存根可用于编码|解码消息。请参见Protocol Buffer Basics: Python,其中包含读取消息的示例。有一些方法可以在没有模式的情况下decode二进制文件,但这更具挑战性。因此,或者:查看是否可以获取要解码的pb文件的Python存根或者:如果您有proto文件,请使用protoc(请参见上面的示例)生成Python桩模块或者:使用Marc的工具(如上所述)或其他一些库,它们可以为您解码encoded任意消息。
proto
protoc
1条答案
按热度按时间b1uwtaje1#
Protobuf是一种二进制编码,通常使用模式(类型)来解码消息。
Protobuf类型在
proto
文件中描述,并被编译(使用protoc
)为特定于语言的存根,这些存根可用于编码|解码消息。请参见Protocol Buffer Basics: Python,其中包含读取消息的示例。
有一些方法可以在没有模式的情况下decode二进制文件,但这更具挑战性。
因此,
或者:查看是否可以获取要解码的pb文件的Python存根
或者:如果您有
proto
文件,请使用protoc
(请参见上面的示例)生成Python桩模块或者:使用Marc的工具(如上所述)或其他一些库,它们可以为您解码encoded任意消息。