在使用python编程过程中,经常需要对C语言文件进行操作,即.h文件进行读取操作,这里举例说明,python读取C语言头文件,提取其中#define 宏定义

废话少说,上代码

import os
import redef 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,linem = re.match(r"\s+0x",line)if m:s = len(m.group(0))a = int(line[s:s+8],16)addr[x]=areturn addraddr = {}
path = os.path.split(os.path.realpath(__file__))[0]fn = path+"\\spi.h"
addr = loadFromC(fn,addr)print (addr)

windows下使用IDLE测试如下图所示,将spi.h的#define宏都提取出来,方便后面使用

测试工程上传

python读取C语言头文件测试用例,参考博客,有详细说明-嵌入式文档类资源-CSDN文库

python读取C语言头文件相关推荐

  1. C语言头文件、库文件的查找路径

    一.讨论环境 *操作系统:Redhat5/Fedora14 *编译器:gcc 4.5.1 以下言论仅确保在以上环境中,绝对正确.别的环境,大家可以通过类比方法,得到启示. 二.C语言头文件的查找路径 ...

  2. Python读取.dat后缀名文件

    Python读取.dat后缀名文件 .dat文件基本上是没有任何头的二进制文件.对于每个样本,它由(256,256,3)个uint8图像,(64,64,1)uint8深度图和1个uint8标签组成.T ...

  3. Python读取多个excel文件(删除字段、数据格式转换、dataframe多表合并)并写入ElasticSearch实战(自动创建索引、写入ElasticSearch、探索性数据分析)

    Python读取多个excel文件(删除字段.数据格式转换.dataframe多表合并)并写入ElasticSearch实战(自动创建索引.写入ElasticSearch.探索性数据分析) 目录

  4. c语言程序头文件作用,C语言头文件

    C语言头文件教程 C 语言的头文件一般都是 .h 做为结尾的. C语言头文件详解 语法 #include 参数 参数 描述 filename 我们需要引入的头文件的名称. 说明 C 语言的头文件一般都 ...

  5. python读取txt文件写入-python 读取、写入txt文件的示例

    写入文件 使用open()函数和write()函数 但是有两种写法,分别是'a'和'w' 'a' 表示写入文件 若无该文件会直接创建一个 如果存在这个文件,会接着已有的内容的后面写入 with ope ...

  6. C语言头文件深入理解

    C语言程序中,源文件通常分为两种:一种用于保存程序的声明(declaration),称为头文件:另一种用于保存程序的实现(implementation),称为定义(definition)文件. C程序 ...

  7. C语言头文件避免重复包含

    C语言头文件避免重复包含 假定有以下几个头文件及其包含关系为: File1.h,file2.h,file3.h,file4.h,file5.h,main.cpp 那么:file3.h包含file1.h ...

  8. python shp文件_对python 读取线的shp文件实例详解

    如下所示: import shapefile sf = shapefile.reader("e:\\1.2\\cs\\dx_csl.shp") shapes = sf.shapes ...

  9. 如何写一个C语言头文件,C语言头文件如何写?.doc

    C语言头文件如何写? 沃直植跑决争肾垮忧地留许腐榔锑舱黎徒礁锄税絮窟柑冀宴稼误萎蛛席脏衙鹏丢寇急院馋猎争城丫轨最懦患队巩并道嫉缘拉诵旭倘荫惭岩靛约瞥剑澳摈讶蕾沈蜜荧次侧抿两洛加悠馈射移淳敏凹肮复钡桑缮 ...

最新文章

  1. 如何发表cscd核心论文_新手如何发表论文
  2. AtCoder Grand Contest 002 (AGC002) F - Leftmost Ball 动态规划 排列组合
  3. 160个Crackme033
  4. Python文件读写时的换行符与回车符
  5. 【渝粤教育】国家开放大学2019年春季 2110行政法与行政诉讼法 参考试题
  6. mysql 异步复制建立过程_mysql生产环境高可用---基于GTID异步复制项目实施
  7. react不同环境不同配置angular_叫雨山斗鸡优势在哪里,环境不同,价值不同
  8. math.asin_JavaScript中带有示例的Math.asin()方法
  9. 同步轨道进入过程_“收官之星”定点成功!北斗三号卫星全部进入长管模式
  10. MySQL锁系统总结
  11. Java线程池的实现原理,你清楚么?
  12. linux下python脚本处理数据_在Linux中通过Python脚本访问mdb数据库的方法
  13. 模拟银行转账(java+mysql+tomcat +JDBC+ druid连接池 + Servlet + Ajax)
  14. 企业微信再进化:打通视频号上线微信客服,丰富人即服务理念
  15. jszip 解压压缩包_JavaScript 实现的 zip 压缩和解压缩工具包Zip.js使用详解
  16. 安装jdk的时候为什么会有两个jre文件
  17. 论网站CDN的绕过姿势
  18. 《CCNet:Criss-Cross Attention for Semantic Segmentation》论文笔记
  19. Git无法clone问题
  20. C语言fopen函数的用法,C语言打开文件详解

热门文章

  1. 北京理工与东南大计算机专业哪个好,西交、哈工、北理、华科、天大、东大,你中意哪个?...
  2. ros端和stm32之间的通讯1 控制小车移动以及导航的配置
  3. bscroll 滚动位置_scroll lock键在哪里?
  4. Scaleform结合C++编程
  5. Currency 2 大写
  6. java 白盒测试与黑盒测试_什么是白盒测试和黑盒测试?有什么区别?
  7. 正高级知识产权师、高级知识产权师、知识产权师职称给予20000元/人、10000元/人、5000元/人奖励
  8. 剑网3一直连接不上服务器,《剑网3指尖江湖》进不去怎么回事 连接不上服务器解决办法...
  9. 凌玮科技递交注册:年营收4亿 7500万理财发生逾期兑付
  10. 笔记本电脑重装系统win10教程-u盘装系统教程