# -*- coding:utf-8 -*- # python ctemplate.py test import io import sys import datetime reload(sys) sys.setdefaultencoding('utf-8') class ctemplate: __fileName = ' ' __sourceName = ' ' __headerName = ' ' __time = datetime.datetime.now().strftime('%Y.%m.%d') __fileComments = {'@Modify':'\n '+__time+unicode('.Kinve:1.创建文件'), '@Brief':' ', '@Date':__time, '@Version':'V0.1', '@Author':'Kinve JQ', '@File':" ", } __CommentsOrder = ('@File','@Author','@Version','@Date','@Brief','@Modify') def __init__(self,s): self.__fileName = s self.__sourceName = s + ".c" self.__headerName = s + '.h' def generateCommentsAtTop(self,name): self.__fileComments['@File'] = name comments = ('/**\n') #find max length of string maxLen = 0 for s in self.__CommentsOrder: if(len(s) > maxLen): maxLen = len(s) for k in self.__CommentsOrder: alignSpaceAmount = maxLen - len(k) + 4 alignSpace = alignSpaceAmount * ' ' comments += ('* '+ k + ':'+ alignSpace + self.__fileComments[k] + '\n') comments += ('**/\n\n') return comments def generateCommentsInTheEnd(self): return ("\n/********************* (C) COPYRIGHT Kinve JQ *******END OF FILE ********/\n") def createSource(self): fh = io.open(self.__sourceName,mode='w',encoding='utf-8') cm = self.generateCommentsAtTop(self.__sourceName) cm += ("#include \"%s\"\n" %self.__headerName) cm += ("\n"*5) cm += self.generateCommentsInTheEnd() fh.write(unicode(cm)) fh.close() def createHeader(self): fh = io.open(self.__headerName,mode='w',encoding='utf-8') cm = self.generateCommentsAtTop(self.__headerName) cm += "#ifndef __%s_H_\n" %self.__fileName.upper() cm += "#define __%s_H_\n" %self.__fileName.upper() + "\n" cm += "/* 包含的头文件---------------------------------------------------------------*/\n" cm += "#include \n" cm += "/* 宏定义 --------------------------------------------------------------------*/\n\n" cm += "/* 类型定义 ------------------------------------------------------------------*/\n\n" cm += "/* 常量定义 ------------------------------------------------------------------*/\n\n" cm += "/* 宏定义 --------------------------------------------------------------------*/\n\n" cm += "/* 函数定义-------------------------------------------------------------------*/\n\n" cm += ("\n"*1) cm += "#endif\n" cm += self.generateCommentsInTheEnd() fh.write(unicode(cm)) fh.close() def createTemplatePairs(self): self.createSource() self.createHeader() if __name__ == '__main__': if len(sys.argv) != 2: sys.stderr.write("please input corret parameter") else: s = sys.argv[1] ct = ctemplate(s) ct.createTemplatePairs()