#!/usr/bin/python
# -*- coding: utf-8 -*-
# @Users: LiMu
# @Files:BuffCompile.py
# @Times: 2024/4/29
# @Software:PyCharm
import os
import json
import time
import random
import warnings
#pkg_resources方法在python3.8后已弃用,使用warnings提供新的语法指向pkg_resources
warnings.filterwarnings('ignore', category=DeprecationWarning, module='pkg_resources')
class Compileprotobuff:
'''
#强制依赖以下三方库,版本必须一致。
pip install protobuf==5.26.1
pip install grpcio-tools==1.62.2
pip install setuptools==67.6.1
'''
#protobuff文件存放的位置
paths = "E:\DqsjTwoExample\proto"
@staticmethod
def list_directory_contents(dir_path):
filepath,filename = [],[]
for entry in os.scandir(dir_path):
if entry.is_file():
filename.append(entry.name)
elif entry.is_dir():
filepath.append(entry.name)
else:
pass
return filepath,filename
@staticmethod
def StartCompile(ModelName=None):
#遍历接受BUFF文件对应的模块名称
filepath = Compileprotobuff.list_directory_contents(Compileprotobuff.paths)[0]
for i in filepath:
#遍历接受BUFF文件对名称
filename = Compileprotobuff.list_directory_contents("{}\\{}".format(Compileprotobuff.paths, i))[1]
if ModelName == i:
#指定编译某个模块的BUFF文件
for j in filename:
runpath ="./{}".format(i) + "\\" + j
os.system(f"python -m grpc_tools.protoc -I. --python_out=../core/ {runpath}")
print(f"成功编译文件:{runpath}")
break
else:
#遍历编译文件夹下所有功能模块的buff文件
for j in filename:
runpath = "./{}".format(i) + "\\" + j
os.system(f"python -m grpc_tools.protoc -I. --python_out=../core/ {runpath}")
print(f"成功编译文件:{runpath}")
if __name__ == '__main__':
Compileprotobuff.StartCompile("Adventure")
ProtoBuff文件编译成py文件
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 在一个项目的最外层建gulpfile.js,代码如下 启动的方式:gulp watch 例子: less文件 编译...
- 前提:已经安装了typescript否则使用下列命令全局安装typescript 第一步:使用cmd到达指定的项目...
- 1.编译成class和直接用java,大小问题,class文件精炼过,去掉了注释等等2.如果在jvm运行时编译的话...