Word题库转为Excel题库的方法2

一、分析原始文件
答案后边还有解答,但是有的没有解答,每个选项ABCD后有个空格,这样可以给是答案还是解答筛选出来
在这里插入图片描述

在这里插入图片描述
把A空格B空格。。。替换为A:B: ,后原始文件如下图
在这里插入图片描述

# coding=utf-8
# -*- coding: UTF-8 -*-
#import xlrd
import xlwt
from docx import Document
#xlrd:可以对xlsx、xls、xlsm文件进行读操作且效率高 ,xlwt:主要对xls文件进行写操作且效率高,但是不能执行xlsx文件
#本文用的xlwt为1.3.0  python-docx是0.8.8版本 xlwt版本太高会报#错Reason: Incompatible library version: etree.cpython-37m-darwin.so requires version 12.0.0 or later,
def is_number(s):#判断是不是数字
    try:
        float(s)
        return True
    except ValueError:
        pass

    try:
        import unicodedata
        unicodedata.numeric(s)
        return True
    except (TypeError, ValueError):
        pass

    return False
tiKu = "002.docx"# 预处理好的Word
count = 0
lie=1
deletehang=False
doc = Document(tiKu)
wbk = xlwt.Workbook()
sheet = wbk.add_sheet('sheet1', cell_overwrite_ok=True)

for para in doc.paragraphs:
    if count<1495:
        if para.text[0]=='A' and para.text[1]==':':
            sheet.write(count,1,para.text)
            lie+=1
        elif para.text[0]=='B' and para.text[1]==':':
            sheet.write(count, 2, para.text)
            lie+=1
        elif para.text[0]=='C' and para.text[1]==':':
            sheet.write(count, 3, para.text)
            lie+=1
        elif para.text[0]=='D' and para.text[1]==':':
            sheet.write(count, 4, para.text)
            lie+=1
        elif para.text[0]=='E' and para.text[1]==':':
            sheet.write(count, 5, para.text)
            lie+=1
        elif para.text[0]=='F' and para.text[1]==':':
            sheet.write(count, 6, para.text)
            lie+=1
        elif para.text[0] == 'G' and para.text[1] == ':':
            sheet.write(count, 7, para.text)
            lie += 1
        elif para.text[0]=='答' and para.text[1]=='案': #写答案,遇到答案
            sheet.write(count, 9, para.text)
            lie+=1
            count = count + 1
            deletehang=True #下一个para是答案不要了
        # elif is_number(para.text[0]) and ')'in para.text and para.text[1]=='、':
        # # 如果第一个是数字并且题干里有()说明是题干#说明是解答或者是题干,如何判断是解答还是题干?
        #     sheet.write(count, 0, para.text)  # 写题干
        #     lie=1
        else:#说明是答案
            sheet.write(count, 0, para.text)  # 写在答案行
            deletehang = False  # 下一行是题了



wbk.save('001.xls') #生成的Excel题库

这样处理结果会把解答删掉

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值