【转载】 python 生成C++模板代码
2021/11/26 17:10:54
本文主要是介绍【转载】 python 生成C++模板代码,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
转载:https://blog.csdn.net/weixin_30245867/article/details/98950730
转载:https://blog.csdn.net/phunxm/article/details/34917371
背景:
在开发过程中,会出现一些 统一代码结构的写法;这些类大同小异,如果人工来写代码,既费力又容易出错;而借用python的代码自动生成,可以轻松搞定;
模版方法替换
使用string中的Template方法;
from string import Template tempTemplate = string.Template("Hello $name ,your website is $message") print(tempTemplate.substitute(name='大CC',message='http://blog.me115.com'))
有了模版方法后,就可以将模版保存到文件单独编辑,在生成的地方替换为需要的变量;
示例:代码生成
建立一个模版文件,里面需要替换的内容使用${}变量替换;
dao_cpp.template
/// /// @class ${CLASSNAME} /// @brief Redis底层接口类 操作${TABLE_NAME}表 /// TABLE ${TABLE_NAME_UPPER} /// @author dao_cpp_generator.py /// @generate date: ${GENE_DATE} /// [注:本文件为自动生成,不需要人为编辑,若有修改,请通过配置py脚本来重新生成.] #include "${CLASSNAME}.h" #include "include/${TABLE_NAME}_t.h" #include "RedisManager.h" #include "common/LogMacros.h" #include "common/StringUtility/OtherStringFunc.h" #include "common/DateTime.h" namespace redisdao{ #define PRIMARY_KEY "${PRIMER_KEY}" const string ${CLASSNAME}::TABLE_NAME = "${TABLE_NAME}"; const string ${CLASSNAME}::TABLE_ID = "${TABLE_ID}"; //在数据库中的表的唯一性标识符 const string ${CLASSNAME}::KEY_SEPARETER = "${KEY_SEPARETER}"; ${CLASSNAME}::${CLASSNAME}(void) { if ( 0 == m_reHandler.EnsureConnect()) m_bRedisConnected = true; else m_bRedisConnected = false; } ${CLASSNAME}::~${CLASSNAME}(void) { } int ${CLASSNAME}::InsertRecord(const string& strVal) ...
python代码生成程序:
cpp_generator.py
#! /usr/bin/env python #coding=utf-8 #Redis底层操作类CPP文件生成程序(*RedisDao.cpp) #author me115@126.com 2014-7-22 import os,sys,re,traceback from datetime import datetime from string import Template class DaoCppGenerator: def generate(self): tableName = 'students' className = '%sRedisDao' % tableName.capitalize() filePath = r'include/%s.cpp' % className class_file = open(filePath,'w') lines = [] #模版文件 template_file = open(r'dao_cpp.template','r') tmpl = Template(template_file.read()) #模版替换 # substitute 会报错 没有匹配到的数值;safe_substitute 会将没有匹配到的数据 原封不动展示出来 lines.append(tmpl.safe_substitute( CLASSNAME = className, TABLE_NAME = tableName, TABLE_NAME_UPPER = tableName.upper(), GENE_DATE = datetime.now().strftime('%Y-%m-%d %H:%M:%S'), TABLE_ID = '115', EXPIRE_DATE = '06JUN14')) # 0.将生成的代码写入文件 class_file.writelines(lines) class_file.close()
python字符串模板中的KeyError
这篇关于【转载】 python 生成C++模板代码的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-08有遇到过吗?同样的规则 Excel 中 比Python 结果大
- 2024-03-30开始python成长之路
- 2024-03-29python optparse
- 2024-03-29python map 函数
- 2024-03-20invalid format specifier python
- 2024-03-18pool.map python
- 2024-03-18threads in python
- 2024-03-14python Ai 应用开发基础训练,字符串,字典,文件
- 2024-03-13id3 algorithm python
- 2024-03-13sum array elements python