Files
phs_v1.0.1.0/replace_file.py

88 lines
2.1 KiB
Python
Raw Normal View History

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)