一、前言
内部培训会有Word版本题库,考核时如果使用Word、Excel、PDF等文档进行关键字查询题目体验不佳。so,撸个软件吧!
二、Word题库转Excel
1、Word题库格式要求
题目每7行循环,要求如下:
行数 | 内容 | 分隔符 |
---|---|---|
第一行 | 题目 | |
第二行 | 选项A | “.”(英文符号点) |
第三行 | 选项B | “.”(英文符号点) |
第四行 | 选项C | “.”(英文符号点) |
第五行 | 选项D | “.”(英文符号点) |
第六行 | 答案 | “:”(英文符号冒号) |
第七行 | 换行符分割 |
2、Word题库内容展示
3、Python转换代码
# -*- coding: cp936 -*-import docx
import openpyxldoc_path = input("输入Word文件路径:")
wb_path = input("输入Excel文件路径:")try:# 读取Word文档doc = docx.Document(doc_path)# 创建一个Excel工作簿wb = openpyxl.Workbook()ws = wb.activews.title = "题目及答案"# 写入表头ws["A1"] = "题目"ws["B1"] = "答案"row_num = 2for i in range(0, len(doc.paragraphs), 7):print(f"正在读取:{doc.paragraphs[i].text}")question = doc.paragraphs[i].textoption_A = doc.paragraphs[i+1].text.split(".")[1].strip()option_B = doc.paragraphs[i+2].text.split(".")[1].strip()option_C = doc.paragraphs[i+3].text.split(".")[1].strip()option_D = doc.paragraphs[i+4].text.split(".")[1].strip()answer_index = doc.paragraphs[i+5].text.split(":")[1].strip()options_dict = {"A": option_A,"B": option_B,"C": option_C,"D": option_D}# 获取答案对应的值,若找不到则使用"Unknown"answer = options_dict.get(answer_index, "Unknown") # 写入Excelws[f"A{row_num}"] = questionws[f"B{row_num}"] = answerrow_num += 1# 保存Excel文件wb.save(wb_path)print("转换完成:题目和答案已成功写入Excel文件。")except Exception as e:print(f"发生错误:{e}")input("按任意键退出...")
4、Python打包程序下载
下载链接。
5、错误原因说明及解决方法
软件如若报错,打开Word题库,定位到出错的位置,检查修改至满足上诉格式要求。
情况一:题目存在多余换行符,如下。
情况二:答案缺失换行符,如下。
情况三:缺失部分题目、答案选项、答案结果,如下。
三、关键字快速查询题库
1、Excel题库格式要求
列数 | 内容 |
---|---|
A列 | 题目 |
B列 | 正确答案 |
2、Excel题库内容展示
3、软件下载
下载链接。
4、软件使用
①启动软件,并打开题库
②查询方式
查询方式 | 说明 |
---|---|
输入关键字,点击按钮查询 | 前台查询 |
输入关键字,按键“ALT+S”查询 | 前台查询 |
复制关键字,按键“CTRL+X”查询 | 全局查询 |
③查询结果仅为1题时,效果展示
④查询结果为多题时,效果展示(在软件左侧上部分点击选择或输入更多关键字查询)
⑤查询结果为空时,效果展示
⑥查询题目重复,效果展示
四、补充说明
1、“Word题库转Excel”开发环境:Python 3.9;
2、“查询Excell”开发环境:.NET8;
3、软件仅适配了单选题;
4、软件支持题目重复;
5、若考核网页(软件)不支持题目复制,尝试使用浏览器插件解除复制或使用ocr软件辅助。