本文测试过程使用使用的工程代码上传
python读取C语言头文件,参考博客,有测试记录、使用说明资源-CSDN文库
或者
python读取C语言头文件测试用例,参考博客,有详细说明-嵌入式文档类资源-CSDN文库
背景
在使用python编程过程中,经常需要对C语言文件进行操作,即.h文件进行读取操作,这里举例说明,python读取C语言头文件,提取其中#define 宏定义
代码实现
废话少说,上代码
这里简单解读一下代码,先找到测试使用头文件spi.h,并匹配字符串#define
然后对应提取其中的字段内容
最后打印addr内容
可以根据自己的需求进行修改,这里只是抛砖引玉,希望能帮上你。
python实现起来比较简洁,如果使用C语言,要写上一大堆代码
这里需要注意的是python中文件路径的写法
import os
import re
def loadFromC(fn,addr):
reg_file = open(fn)
for line in reg_file.readlines():
m = re.match(r"#define(\s+)",line)
if m:
x = m.group(0)
s = len(x)
line = line[s:]
m = re.match(r"(\S+)",line)
if m:
x = m.group(0)
s = len(x)
line = line[s:]
#print x,line
m = re.match(r"\s+0x",line)
if m:
s = len(m.group(0))
a = int(line[s:s+8],16)
addr[x]=a
return addr
addr = {}
path = os.path.split(os.path.realpath(__file__))[0]
fn = path+"\\spi.h"
addr = loadFromC(fn,addr)
print (addr)
测试
windows下使用IDLE测试如下图所示,将spi.h的#define宏都提取出来,方便后面使用
在window平台,运行测试图片如下图所示
实际使用文件如下图所示,比较简单
其中redRegFromHFile.py是实际使用的源代码
spi.h是C语言的测试头文件,这里可以更改为自己的使用的头文件
在 redRegFromHFile.py中注意文件路径和文件名称的修改
本文测试过程使用使用的工程代码上传
python读取C语言头文件,参考博客,有测试记录、使用说明资源-CSDN文库
或者