python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Python自动化处理Excel

Python脚本实现自动化处理Excel选择题

作者:IT小本本

本文介绍了一个自动整理选择题的Python脚本,可以将秒钟自动将杂乱的试题题题库整理成Excel表格格式,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下

亲爱的各位小伙伴,你是否经历过这样的困境:

手里有一份杂乱的试题库,题目、选项、答案混在一起,想要整理成规范的表格格式,却要手动复制粘贴几百道题?

别急!今天我要分享一个超实用的Python脚本,让你5秒钟自动整理任意数量的选择题,从此告别手动整理的噩梦。

这个脚本能做什么?

想象一下,你的原始数据是这样的:

运行脚本后,你会得到这样的Excel表格:

题目选项A选项B选项C选项D答案
1.下列选项中哪项不属于间接申报的范围?( )A、资本项目管理涉外收付款B、货物贸易进出口核查涉外收付款C、代发工资类涉外收付款D、境内居民个人通过境内银行与境内非居民个人之间发生的人民币收付款D
2.关于境内居民通过境内银行与境外非居民发生的收入和支付款项,下列哪项说法不正确的是( )。A、由境内居民分别按照其资金来源和资金用途性质进行申报B、境内银行应在基础信息中的"对方付款人/收款人名称"前添加"(JW)"字样C、"付款人/收款人常驻国家(地区) "填写境外非居民的常驻国家或地区C

完全自动化,零手动操作!

核心功能拆解

智能读取Excel

df = pd.read_excel('data.xlsx', header=None)
lines = df[0].dropna().astype(str).tolist()

按题号自动切分

questions = re.split(r'\n(?=\d+\.)', text.strip())

精准提取信息

结构化输出

result_df.to_excel("整理后题库.xlsx", index=False)

案例展示

这个脚本已成功处理过涉外收付款申报财务管理法律法规等多个领域的试题库。

处理前的混乱数据:

62.境内银行涉外收付款凭证包括哪些?
A、《涉外收入申报单》
B、《境外汇款申请书》
C、《对外付款/承兑通知书》
D、《境内收入申报单》
E、《境内汇款申请书》
F.《境内付款/承兑通知书》
答:ABC

87.一般情况下,对外付款/承兑通知书中的付款金额应满足以下哪几个平衡关系: (    )
A、付款金额=现汇金额+购汇金额+其他金额
B、付款金额≥现汇金额+购汇金额+其他金额
C、付款金额=第一行交易编码对应的金额+第二行交易编码对应的金额
D、付款金额=实际付款金额
E、《境内汇款申请书》
答:AC

处理后的规范表格:

题号题目选项A选项B选项C选项D选项E选项F答案
62境内银行涉外收付款凭证包括哪些?A、《涉外收入申报单》B、《境外汇款申请书》C、《对外付款/承兑通知书》D、《境内收入申报单》E、《境内汇款申请书》F、《境内付款/承兑通知书》ABC
87一般情况下,对外付款/承兑通知书中的付款金额应满足以下哪几个平衡关系A、付款金额=现汇金额+购汇金额+其他金额B、付款金额≥现汇金额+购汇金额+其他金额C、付款金额=第一行交易编码对应的金额+第二行交易编码对应的金额D、付款金额=实际付款金额AC

看!再复杂的题目也能完美处理!

特别亮点:

为什么要用这个脚本?

对比项手动整理用脚本
100道题耗时2-3小时5秒钟
出错率5-10%0%
重复使用每次都要做一次编写,永久使用
心情😫😎

快速开始

第一步:准备数据

第二步:安装依赖

pip install pandas openpyxl

第三步:运行脚本

python script.py

第四步:获得结果

适用场景

教师整理试卷

学生制作错题本

培训机构管理题库

在线教育平台数据处理

考试复习资料整理

企业员工培训题库

资格证考试备考

财务、法律等专业领域题库整理

小贴士

  1. 支持多种选项格式:A、 A. A. 都能识别
  2. 支持A-F六个选项:轻松处理多选题
  3. 答案识别灵活:支持"答:"和"答:"两种格式
  4. 自动去重:重复的题目也能正确处理
  5. 支持多行答案:ABC、ABCD等多选答案完美处理
  6. 保留原始信息:题号、题目、选项、答案一个不少

全部实现代码

import pandas as pd
import re

# =========================
# 读取Excel
# =========================
df = pd.read_excel('data.xlsx', header=None)

# 第一列转列表
lines = df[0].dropna().astype(str).tolist()

# 合并成文本
text = "\n".join(lines)

# =========================
# 按题号切分
# =========================
questions = re.split(r'\n(?=\d+\.)', text.strip())

result = []

for q in questions:

    row = {
        "题目": "",
        "选项A": "",
        "选项B": "",
        "选项C": "",
        "选项D": "",
        "选项E": "",
        "选项F": "",
        "答案": ""
    }

    q_lines = q.strip().split("\n")

    # 题目
    row["题目"] = q_lines[0]

    # 答案
    answer_match = re.search(r'答[::]\s*([A-F]+)', q)
    if answer_match:
        row["答案"] = answer_match.group(1)

    # 选项
    for line in q_lines[1:]:

        line = line.strip()

        match = re.match(r'^([A-F])[、\..](.*)', line)

        if match:
            option = match.group(1)
            content = match.group(2).strip()

            row[f"选项{option}"] = f"{option}、{content}"

    result.append(row)

# =========================
# 输出结果
# =========================
result_df = pd.DataFrame(result)

# 保存Excel
result_df.to_excel("整理后题库.xlsx", index=False)

print(result_df)

这个脚本完全开源免费,你可以:

到此这篇关于Python脚本实现自动化处理Excel选择题的文章就介绍到这了,更多相关Python自动化处理Excel内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文