From 97d1a8f46f371dd677ebfafcb3f7051323460e6a Mon Sep 17 00:00:00 2001 From: liwei1dao Date: Mon, 20 Feb 2023 19:09:24 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8A=E4=BC=A0vue=20pb=E7=BC=96=E8=AF=91?= =?UTF-8?q?=E5=B7=A5=E5=85=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pb_2.7.py | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 pb_2.7.py diff --git a/pb_2.7.py b/pb_2.7.py new file mode 100644 index 0000000..1231b1e --- /dev/null +++ b/pb_2.7.py @@ -0,0 +1,41 @@ +import os +import io +import re +import shutil + +source_path = os.path.abspath(r'./src/pb/proto') +target_path = os.path.abspath(r'./src/pb/temop') + +if not os.path.exists(target_path): + os.makedirs(target_path) + +if os.path.exists(source_path): + # root 所指的是当前正在遍历的这个文件夹的本身的地址 + # dirs 是一个 list,内容是该文件夹中所有的目录的名字(不包括子目录) + # files 同样是 list, 内容是该文件夹中所有的文件(不包括子目录) + for root, dirs, files in os.walk(source_path): + for file in files: + folder = os.path.basename(root) + if folder == "proto": + src_file = os.path.join(root, file) + shutil.copy(src_file, target_path) + elif folder != "protobuf": + src_file = os.path.join(root, file) + out_file = os.path.join(target_path, file) + file_data = "" + with io.open(src_file, "r", encoding='utf-8') as f: + for line in f: + if 'import' in line: + cite = re.findall(r"\"(.+?)\"",line)[0] + cpaths = cite.split("/") + if len(cpaths) == 2: + line = re.sub( + cite, cpaths[1], line) + print(line) + file_data += line + with io.open(out_file, "w", encoding='utf-8') as f: + f.write(file_data) +cmdstr = 'npx pbjs -t json-module -w commonjs -o ./src/pb/proto.js ./src/pb/temop/*.proto' +print(cmdstr) +os.system(cmdstr) +print('copy files finished!')