windows下python使用protobuf的开门级教程

转载自:https://blog.youkuaiyun.com/u013992365/article/details/81287041

一、在windows下编译python所需的protobuf的相关文件
1、首先下载protobuf源码(后一个是我自己从github上down的,因为版本是3.6.0,因为网不好下了很久,但是这个是完全体,就是我把包括python在内的全部版本都下了下来):
https://github.com/google/protobuf/releases/tag/v3.6.0
或是:https://download.youkuaiyun.com/download/u013992365/10570515

2、找到protobuf-3.6.0.zip和protoc-3.6.0-win32.zip两个文件,解压;
3、将protoc-3.6.0-win32\bin下的protoc.exe复制到protobuf-3.6.0\src;
4、cmd窗口下切换到protobuf-3.6.0的python目录下,依次运行以下命令:

python setup.py build

 python setup.py test

 python setup.py install

 

通过以上操作,就在机器中安装了python的protubuf。可以通过import google.protobuf命令来检测是否安装成功,如果成功了就是下图这样,如果报错了就是失败了。

生成python解析文件

B站弹幕解析格式

syntax = "proto3";

package dm;

message DmSegMobileReply{
    repeated DanmakuElem elems=1;
}
message DanmakuElem{
    int64 id = 1;
    int32 progress = 2;
    int32 mode = 3;
    int32 fontsize = 4;
    uint32 color = 5;
    string midHash = 6;
    string content = 7;
    int64 ctime = 8;
    int32 weight = 9;
    string action = 10;
    int32 pool = 11;
    string idStr = 12;
}

利用protoc工具将其编译为python解析文件。

protoc --python_out=./ ./dm.proto

解析弹幕

执行完上面语句,就会拿到一份dm_pb2.py文件,我们需要在解析字幕的时候引用他。使用方法如下:

from dm_pb2 import DmSegMobileReply
from google.protobuf.json_format import MessageToJson,Parse
import json
DM = DmSegMobileReply()
with open("./message","rb") as f:
    DM.ParseFromString(f.read())

with open("./message.json","w") as f:
    f.write(json.dumps(json.loads(MessageToJson(DM)),ensure_ascii=False))

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值