import xlrd import os def f_sig_val(xls_path, output_path): des_xls = xlrd.open_workbook(xls_path + "/" + file_name).sheet_by_index(1) input_sig = [str(des_xls.cell(0, i).value) for i in range(2, des_xls.ncols)] output_sig = [str(des_xls.cell(i, 0).value) for i in range(20, des_xls.nrows)] sig_val = [[str(des_xls.cell(i, j).value) for i in range(20, des_xls.nrows) if str(des_xls.cell(i, j).value) != ""] for j in range(2, des_xls.ncols)] width = [] print(des_xls.nrows) print(des_xls.ncols) for i in input_sig: print(i) for i in output_sig: print(i) print(sig_val) texts = gen_code(input_sig, output_sig, sig_val) write_to_svfile(output_path+"/test.sv", texts, "w") def gen_code(input_sig, output_sig, sig_val): texts = [] for i in range(len(sig_val)): texts.append(4*""+"if ("+input_sig[i]+" == 1)") for j in range(len(sig_val[i])): texts.append(8*""+output_sig[i]+" = "+sig_val[i,j]+";") return texts def write_to_svfile(svfile_name, texts, method): sv_file = open(svfile_name, "%s"%method) for i in texts: sv_file.write(i+"\n") sv_file.close() xls_path = "." output_path = "." file_name = "glb_ctrl_modesel.xlsx" f_sig_val(xls_path, output_path)
时间: 2024-04-23 16:23:09 浏览: 171
Python3读写Excel文件(使用xlrd,xlsxwriter,openpyxl3种方式读写实例与优劣)
这是一段 Python 代码,它主要用于读取指定路径下的 Excel 文件,提取其中的数据,并将其转化为 SystemVerilog 代码的形式输出到指定路径下的文件中。具体来说,它首先通过 xlrd 库打开指定路径下的 Excel 文件,然后通过 sheet_by_index() 方法选择要读取的工作表。接着,它从工作表中提取输入信号和输出信号的名称,并将它们存储在 input_sig 和 output_sig 列表中。然后,它通过遍历工作表中的数据,提取出每个输入信号对应的输出信号的取值,并将它们存储在 sig_val 列表中。最后,它调用 gen_code() 函数将 sig_val 转化为 SystemVerilog 代码,并调用 write_to_svfile() 函数将生成的代码写入到指定路径下的文件中。
阅读全文