88 lines
2.1 KiB
Python
88 lines
2.1 KiB
Python
|
import os
|
|||
|
import sys
|
|||
|
|
|||
|
# 导入要修改的文件列表
|
|||
|
from remove_file import src_files
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
# 找到文件列表中的所有源文件
|
|||
|
def list_type_files(file_list:list,tail:str):
|
|||
|
src_list=[]
|
|||
|
for item in file_list:
|
|||
|
if(str(item).endswith(tail)):
|
|||
|
src_list.append(item)
|
|||
|
return src_list
|
|||
|
|
|||
|
|
|||
|
|
|||
|
# 生成要修改的文件名称列表
|
|||
|
def create_modify_name(file_list:list):
|
|||
|
modify_name=[]
|
|||
|
for item in file_list:
|
|||
|
sp=os.path.split(item)
|
|||
|
if(sp[-1].startswith('iot_')):
|
|||
|
path=os.path.join(sp[0],sp[-1].replace('iot_','sw_'))
|
|||
|
modify_name.append((item,path))
|
|||
|
return modify_name
|
|||
|
|
|||
|
|
|||
|
|
|||
|
# 修改名称
|
|||
|
def file_list_rename(rename_list:list):
|
|||
|
for src,dst in rename_list:
|
|||
|
os.rename(src,dst)
|
|||
|
|
|||
|
|
|||
|
# 生成要修改的头文件字符串
|
|||
|
def create_modify_strings(modify_files:list):
|
|||
|
modify_list=[]
|
|||
|
for src,dst in modify_files:
|
|||
|
ps_src=os.path.split(src)[-1]
|
|||
|
ps_dst=os.path.split(dst)[-1]
|
|||
|
if(ps_src.endswith('.h')):
|
|||
|
modify_list.append((ps_src,ps_dst))
|
|||
|
return modify_list
|
|||
|
|
|||
|
# 修改源文件中的include
|
|||
|
def modify_include(file_list:list,replace_list:list):
|
|||
|
for item in file_list:
|
|||
|
try:
|
|||
|
with open(item,mode='r') as f:
|
|||
|
lines=f.readlines()
|
|||
|
except Exception as e:
|
|||
|
print(e)
|
|||
|
print(f"file {item} open failed.")
|
|||
|
continue
|
|||
|
for replace in replace_list:
|
|||
|
for i in range(len(lines)):
|
|||
|
if(lines[i].startswith("#include")):
|
|||
|
lines[i]=lines[i].replace(replace[0],replace[1])
|
|||
|
with open(item,mode='w+') as f:
|
|||
|
for item in lines:
|
|||
|
f.write(item)
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
if __name__ == "__main__":
|
|||
|
# 第一步,生成需要修改的文件列表
|
|||
|
md_files=create_modify_name(src_files)
|
|||
|
# for item in md_files:
|
|||
|
# print('---')
|
|||
|
# print(item[0])
|
|||
|
# print(item[1])
|
|||
|
# 第二步,生成需要修改的include替换列表
|
|||
|
md_string_list=create_modify_strings(md_files)
|
|||
|
# for item in md_string_list:
|
|||
|
# print('---')
|
|||
|
# print(f"{item[0]},{item[1]}")
|
|||
|
# 第三步,修改源文件中的inlude
|
|||
|
modify_include(src_files,md_string_list)
|
|||
|
# 第四步,修改文件名
|
|||
|
file_list_rename(md_files)
|
|||
|
|