[英]Reading protobuf Message file in Python
我有一個 pb 文件 abc.pb 文件。
我需要通過保留其格式來讀取文件,即不想將 pb 文件轉換為字符串,然后再次重新轉換它。
目前我正在嘗試選擇
with open(data, "rb") as file_handle:
data = file_handle.read()
但這會將其轉換為字節。 如何將它們讀作消息。 有人可以幫忙嗎?
Protobuf 是一種二進制編碼,通常您將使用模式(類型)來解碼消息。
Protobuf 類型在proto
文件中進行描述,並編譯(使用protoc
)為特定於語言的存根,可用於編碼|解碼消息。
請參閱Protocol Buffer Basics:Python ,其中包括一個讀取消息的示例。
有一些方法可以在沒有模式的情況下解碼二進制文件,但它更具挑戰性。
所以:
要么:查看您是否可以獲得您嘗試解碼的 pb 文件的 Python 存根
或者:如果您有proto
文件,請使用protoc
(參見上面的示例)生成 Python 存根
或者:使用 Marc 之類的工具(上文)或其他庫來為您解碼編碼的任意消息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.