python把c语言的.h文件转为c++的.cpp和.h文件
把c转为c++对象
c文件内容
typedef struct ast_value_t
{ast_metadata meta;ast_value_data data;ast_value_type type;
};
转为的内容
cpp文件内容
ast_value_t:: ast_value_t()
{return;
}ast_value_t :: ~ast_value_t()
{return;
}
h文件内容
class ast_value_t
{public:ast_value_t();~ast_value_t();private:ast_metadata meta;ast_value_data data;ast_value_type type;
};
python脚本内容
#!/usr/bin/python
# -*- coding: UTF-8 -*-
# 输出文件地址
import sys
outPath = "/home/"
# 打开一个文件(文件地址,输出的文件名称)
def analysis(filePath,fileName):# 需要写入的.h文件fH = open(outPath + fileName + ".h",'w+')# 需要写入的.cpp文件fCpp = open(outPath + fileName + ".cpp",'w+')# 要读取的文件file = open(filePath, 'r')strs = file.readlines()readLine = ""# 默认状态state = 0for str in strs:# 出现{在第一行直接跳过if state == 9:if str.find("{") == 0:state = 1continue# 判断是否以struct开头和typedef struct开头if state == 0 and (str.find("struct") == 0 or str.find("typedef struct") == 0):# 判断第一行结尾是否是;如果是就结束不操作if str.find(";") != -1:state = 0readLine = ""continue# 修改状态为在写入state = 1# 分割字符串获取类名称data = str.partition("struct")# print "内容是", data[2]# 如果第一行没有以{开头说明在下一行以{开头所以给个跳过状态if str.find("{") == -1:state = 9# 开始读取类名称equation = data[2].partition("{")# 写入.h文件writeH(fH,1,equation[0].strip())# 写入.cpp文件writeCpp(fCpp,equation[0].strip())# 如果是正在写入状态,并且第一行不是}说明还在写,所以读取elif state == 1 and str.find("}") != 0:readLine += "\t\t" + str.strip()+"\n"# 如果是正在写入状态,并且第一行是}说明写完,所以状态清空并写入记载内容elif state == 1 and str.find("}") == 0:state = 0writeH(fH,2,readLine)readLine = ""print "转换成功!"# 关闭打开的文件file.close()fH.close()fCpp.close()# 写文.h文件
# 1表示class,2表示private开始
def writeH(file,type,content):bodyContent = ""if type == 1:bodyContent = ("\n\nclass %s\n{\n\tpublic:\n\t\t%s();\n\t\t~%s();" %(content,content,content))elif type == 2:bodyContent = ("\n\tprivate:\n%s};" %content)file.write(bodyContent)# 写文.cpp文件
def writeCpp(file,content):bodyContent = ("\n%s :: %s ()\n{\n\treturn;\n}\n\n%s :: ~%s ()\n{\n\treturn;\n}\n" %(content,content,content,content))file.write(bodyContent)# 修改导出路径
def editOutPath():global outPathoutPath = raw_input("请输入导出置路径:")print "修改成功!"# 修改导出路径
def convertFile():path = raw_input("请输入文件路径:")name = raw_input("请输入导出后文件名称:")analysis(path,name)# 结束
def close():print "再见"sys.exit()def playWrite():print "---------- 欢迎进入执行系统 ---------------"print "1. 修改导出地址\n2. 开始转换文件\n0. 退出"runLang = raw_input("请输入:")switch = {'1': editOutPath,'2': convertFile,'0': close}switch.get(runLang)()playWrite()playWrite()
博主认为网上会有对应文章,搜索很长时间都没有找到,博主只好自己动手,希望博主这篇文章可以帮助到需要的人
python把c语言的.h文件转为c++的.cpp和.h文件相关推荐
- 将.fig或其他图片文件转为Visio可编辑的.vsd文件
(1)Matlab的.fig文件转为Visio的.vsd文件 在Matlab中打开.fig 文件,编辑-复制图窗到Visio即可转为完全可编辑的vsd文件. 如果复制图窗仍然是图片,可能是 Matla ...
- Yolo v5的txt标注文件转为coco格式的json标注文件
社区上将coco数据集格式的json标注文件转为yolo的txt格式的文章较多,但是如何将txt转为json博主并没有发现.这篇文章就给大家提供一个很方便的小脚本,实现这个功能. 需要注意的是,如果直 ...
- 文件转换-用于性能测试(将postman导出的.json文件转为jmeter可识别的.jmx文件)
步骤: 1.环境要求(二选一): ①本地配置java开发环境,参考:Java 开发环境配置 | 菜鸟教程 ②若不想配置java开发环境,需要有java的运行环境:jre,下载配置参考:https:// ...
- python将txt文件转为字符串_python如何将txt文件转成json数据
python如何将txt文件转成json数据,首先我们要明白json的数据格式是如何的,实际上和python的字典格式几乎是一样的,也是需要一个大括号给括起来,知道了这点我们就知道怎么处理了. 工具/ ...
- python读取C语言头文件
在使用python编程过程中,经常需要对C语言文件进行操作,即.h文件进行读取操作,这里举例说明,python读取C语言头文件,提取其中#define 宏定义 废话少说,上代码 import os i ...
- python转csv_python脚本如何将Excel文件转为csv文件(代码)
本篇文章给大家带来的内容是关于python脚本如何将Excel文件转为csv文件(代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助.#!/usr/bin/env python __ ...
- python头文件math.h_将常量从.h文件导入到python中
我一直在寻找一个简单的答案这个问题,但似乎我找不到一个.我宁愿远离任何尚未包含在 Python 2.6 / 2.7中的外部库. 我有2个c头文件类似于以下内容: //constants_a.h con ...
- Python:pmml格式文件的简介、安装、使用方法(利用python将机器学习模型转为Java常用的pmml格式文件)之详细攻略
Python:pmml格式文件的简介.安装.使用方法(利用python将机器学习模型转为Java常用的pmml格式文件)之详细攻略 目录 pmml格式文件的简介 1.PMML结构 pmml安装 pmm ...
- Python数据分析·读取CSV文件转为字典
Python数据分析·读取CSV文件转为字典 1.pandas 读取CSV 2.CSV转为字典 3.CSV转为数组 Python pandas包可以直接读取CSV文件,为了接下来的数据分析,考虑到转为 ...
最新文章
- RTP timestamp与帧率及时钟频率的关系
- 夺命雷公狗---javascript NO:03 流程结构
- 网易云信流媒体服务端架构设计与实现
- 安卓网络编程(Socket、WebView控件)
- http强缓存在firefox和chrome之间的差异
- C++设计模式-面向对象程序设计要点以及封装性特点
- arm linux支持web协议,arm linux web服务器
- 苹果/微软/特斯拉的产品美学——向丑而生?
- [06]python3 shutil高级文件操作模块
- 【冰糖R语言】(串列)对象不能强制改变成‘double‘种类
- 1、Python学习笔记第一课:python介绍
- html5 粒子动画效果制作,8款惊艳的HTML5粒子动画特效
- dpi和ppi换算_ppi和dpi换算(1ppi等于多少dpi)
- 新款趣味测试小程序源码_测试可用
- swap未禁用导致的k8s NotReady
- Python 模块探索 —— pretty_errors
- SQL Server 2008新特性之压缩备份(backup compression)
- typora上传图片
- python绘图案例——递归绘制分形树
- vshield manager的一些笔记