用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)
wkdxz 发表于 2022-7-20 11:56
楼主能不能提供你的Word文件测试下,我试了其他文档 出现错误
在本贴提供 学习。。。 学习学习 收藏了,稍加改动就能转换各种格式的题库了。 先收藏,日后有用了直接复制黏贴 大老厉害啊,但是不会python,头疼 请问这个可以做成可视化的吗?谢谢分享 测试了一下,加个分
学习一下。 好东西,好东西