用Python自动生成错误码头文件

#!/usr/bin/python3
# _*_coding:UTF-8 _*_
import os
#import 
from openpyxl import load_workbook
from datetime import datetime


def preadd(str1, str2):
    return str2+str1

def open_exl(fname):#'demo.xlsx', 'tiancheng', '', 0x0
    if os.path.exists(fname):
        (fn,fe) = os.path.splitext(fname)#demo.xlsx    demo  + .xlsx
        print(fn,fe)
        assert(fe == '.xlsx' or fe == '.xls')
        wb=load_workbook(fname)#'demo.xlsx'
        sheet=wb[sheetname]
        getCsr(sheet)
    else:
        print("error")

def gen_err_code_header_file():
    hh=os.path.join(os.getcwd(),"err_code.h".format())
    print(hh)  
    with open(hh,'w') as fh:
        content=''
        content+="""/**
 * @file err_code.h
 * @author {}
 * @brief
 * @version {}
 * @date {}
 *
 * @copyright Copyright (c) 2020
 *
 */
""".format('Libra firmware team', version, datetime.today())
        content+="#ifndef _ERR_CODE_H_\n#define _ERR_CODE_H_\n\n"
        fh.write(content)
        for i in range(len(list_err_name)):
            content = '''#define {:<40} {:<10}\n'''.format(list_err_name[i],list_err_code[i].strip())
            print(content)
            fh.write(content)
        fh.write("\n#endif")
    pass
def getCsr(sheet):
    max_rows = sheet.max_row + 1
    for i in range(2, max_rows):
        blk_name=sheet.cell(i,2).value
        blk_code=sheet.cell(i,4).value
        if blk_name != None:
            list_err_name.append(blk_name)
            list_err_code.append(blk_code)
    print(list_err_name,list_err_code)
    print(len(list_err_name),len(list_err_code))
    gen_err_code_header_file()



sheetname='故障码'
version=1.0
list_err_code = []
list_err_name = []
proj_root='C:/work/share/flm/python/python_reg_intf/'
filename='故障码规则.xlsx'
open_exl(filename)




 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值