簡體   English   中英

讀取 Python 中的 protobuf Message 文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM