# coding=gbk
import os
import re
#字典 key--变量名, value--变量地址
dictVariable={}
#读取map文件,找到变量名和变量地址,并放入字典
def readMap():
print("readMap!!! ")
flagFindPrefix = 0
with open("test_demo.map", "r") as f: #逐行读取文件
cows = f.readlines()
for cow in cows:
m = re.match('\s{2}_\w+', cow) #找到变量名对应的行
if m:
key = m.group()[3:] #提取变量名
# print(key)
flagFindPrefix = 1
n = re.match('\s+(\w+)\s+\w+\s+data\s,g\s+\w+', cow) #提取变量地址对应的行
if n and flagFindPrefix == 1:
flagFindPrefix = 0
b = n.group()
if b:
# print(b[34:42])
dictVariable[key] = b[34:42] #提取变量地址,并放入字典
# print(dictVariable)
#读取a2l文件,替换变量地址
def replaceA2l():
print("replaceA2l!!! ")
with open("SCM_ASW.a2l", "r") as f:
cows = f.readlines() #逐行读取文件
with open('Res_SCM_ASW.a2l', 'w') as f: #打开要写入的新文件
for cow in cows:
n = re.search(r'@ECU_Address@\w+@', cow) #找到要替换的行
if n:
key = n.group()[13:-1] #提取要替换的行的变量名
# print(key)
# print(dictVariable[key])
cow = cow.replace('0000', dictVariable[key]) #替换地址0为,变量对应的地址
f.write(cow) #逐行写入文件
#主函数
def main():
readMap()
replaceA2l()
print("replace end!!! ")
os.system('pause')
if __name__ == '__main__':
main()
sven365
- 粉丝: 9
- 资源: 24
最新资源
- mastermastermastermastermastermastermastermastermastermastermast
- Tensorflow基本概念
- 九州仙侠传2砸蛋系统以及各类修复带数据库
- 伯克利大学机器学习-8Collaborative Filtering [Lester Mackey]
- JAVA的Springboot医院设备管理系统源码数据库 MySQL源码类型 WebForm
- C/C++基本框架及解释
- 使用OpenGL实现透明效果
- java房屋租赁系统源码 房屋房源出租管理系统源码数据库 MySQL源码类型 WebForm
- JAVA的Springboot博客网站源码数据库 MySQL源码类型 WebForm
- c++数字雨实现 c++
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈