vue_dreamfactory/pb_2.7.py
2023-07-19 14:53:37 +08:00

49 lines
1.9 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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):
if not "google" in root:
relative_path = root.split(source_path)[-1].strip("/")
if len(relative_path) == 0:
for file in files:
folder = os.path.splitext(file)[1]
if folder == ".proto":
src_file = os.path.join(root, file)
shutil.copy(src_file, target_path)
else:
for file in files:
folder = os.path.splitext(file)[1]
if folder == ".proto":
src_file = os.path.join(root, file)
out_file = os.path.join(target_path, file)
file_data = ""
print(src_file)
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!')