baitianbait 发表于 2022-5-12 18:03

用python做的一个简易word转excel题库

最近因为一个题库小程序的需要,在做开发的时候,小程序做好后,题库需要输入数据库,就用python做了一个word转excel的小案例;
运行结果是这样的:
原版word图:

下面附上代码:
import re
import xlrd
import pandas as pd
from docx import Document
from collections import OrderedDict
import collections
doc = Document("E:\睿丰凌通\建靠题库/1111.docx")
sections = doc.sections
paragraphs = doc.paragraphs

black_char = re.compile("\..*。")#题目匹配
title_rule = re.compile("\..*。")#题目匹配
option_rule1 = re.compile("\d")#选项匹配
option_rule = re.compile("\.\w.*")#选项匹配
option_rule_search = re.compile("\..*")#选项匹配
daan_rule_search = re.compile("【答案】.*")

question_type2data = OrderedDict()
title2options = OrderedDict()

for paragraph in doc.paragraphs[0:55]:
    # print(paragraph.text)
    titlerule = re.search(r'\..*。', paragraph.text, re.M | re.I)
    optionrule = re.search(r'\.\w.*', paragraph.text, re.M | re.I)
    if titlerule:
      line = titlerule.group()
      options = title2options.setdefault(line, [])
      # print("题目", title)
    elif optionrule:
      optionrule = re.findall(r'\.\w*', optionrule.group(), re.M | re.I)
      # print("选项",optionrule)
      options.extend(optionrule)
      # print("选项",options)
      # title2options = question_type2data.setdefault(line, OrderedDict())
      # print(title2options.items())
      # print("题目", title2options)
    # title2options = question_type2data.setdefault(line,line)

result = []
# max_options_len = 0
# for title2options,options in title2options.items():
for title,options in title2options.items():
# print(options)
result.append(,*options])
print("题目", result)
    # options_len = len(options)
    # if options_len > max_options_len:
    #   max_options_len = options_len
df = pd.DataFrame(result, columns=[
            "题目", "选项A","选项B","选项C","选项D"])
      # 题型可以简化下,去掉选择两个字
# df['题型'] = df['题型'].str.replace("选择", "")
df.to_excel("result.xlsx", index=False)

baitianbait 发表于 2022-7-27 15:47

wkdxz 发表于 2022-7-20 11:56
楼主能不能提供你的Word文件测试下,我试了其他文档 出现错误

在本贴提供

studentguo 发表于 2022-5-13 18:54

学习。。。

hlq0514 发表于 2022-5-13 21:46

学习学习

ab123 发表于 2022-5-14 15:51

收藏了,稍加改动就能转换各种格式的题库了。

yks1985 发表于 2022-5-14 16:11

先收藏,日后有用了直接复制黏贴

浑浑噩噩的人呐 发表于 2022-5-19 12:32

大老厉害啊,但是不会python,头疼

cnljm 发表于 2022-7-12 00:38

请问这个可以做成可视化的吗?谢谢分享

yjn866y 发表于 2022-7-13 17:25

测试了一下,加个分

瓦匠 发表于 2022-7-13 22:17

学习一下。

gpff 发表于 2022-7-14 06:34

好东西,好东西
页: [1] 2 3 4
查看完整版本: 用python做的一个简易word转excel题库