from docx import Documentfrom collections import defaultdictfrom openpyxl import Workbookimport redoc_path = r"E:\配套习题.docx"xls_path = r"E:\配套习题.xlsx"xt_dict = defaultdict(lambda : defaultdict(dict))doc = Document(doc_path)tixing = ""tigan = ""for paragraph in doc.paragraphs: text = paragraph.text if "配套习题" in text: continue elif m_tx := re.search(r"^[一二三四五六七八九十]+\s*、\s*([一-龢]+)", text): tixing = m_tx.group(1) continue elif m_tg := re.search(r"^\d+\s*\.\s*.+",text): tigan = m_tg.group() continue elif m_xx := re.search(r"^([A-G])\s*\.\s*(.+)",text): xuanxiang_1 = m_xx.group(1) xuanxiang_2 = m_xx.group(2) xt_dict[tixing][tigan][xuanxiang_1] = xuanxiang_2 continue elif m_da := re.search(r"答案\s*[::]\s*(.+)",text): daan = m_da.group(1) xt_dict[tixing][tigan]["答案"] = daan continue elif m_jx := re.search(r"解析\s*[::]\s*.+",text): jiexi = m_jx.group() xt_dict[tixing][tigan]["解析"] = jiexi continuewb = Workbook()ws = wb.activews.append(["题型","题目","选项A","选项B","选项C","选项D","选项E","答案","解析"])r = 2for tx,dic_tx in xt_dict.items(): for tg,dic_tg in dic_tx.items(): ws.cell(r,1).value = tx ws.cell(r,2).value = tg ws.cell(r,3).value = dic_tg.get("A","") ws.cell(r,4).value = dic_tg.get("B","") ws.cell(r,5).value = dic_tg.get("C","") ws.cell(r,6).value = dic_tg.get("D","") ws.cell(r,7).value = dic_tg.get("E","") ws.cell(r,8).value = dic_tg.get("答案","") ws.cell(r,9).value = dic_tg.get("解析","") r += 1wb.save(xls_path)