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()
- 读取Excel第一列的所有数据
- 自动清理空行,转换为列表
按题号自动切分
questions = re.split(r'\n(?=\d+\.)', text.strip())
- 使用正则表达式识别题号(1. 2. 3.)
- 自动将混乱的文本分割成独立的题目
精准提取信息
- 题目:第一行
- 选项:识别 A、B、C… 开头的行
- 答案:用正则表达式查找"答:"后的内容
结构化输出
result_df.to_excel("整理后题库.xlsx", index=False)
- 生成规范的Excel表格
- 每道题一行,每个字段一列
案例展示
这个脚本已成功处理过涉外收付款申报、财务管理、法律法规等多个领域的试题库。
处理前的混乱数据:
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 |
看!再复杂的题目也能完美处理!
特别亮点:
- 自动识别多选题(ABC、AC等多个答案)
- 支持A-F六个选项,轻松处理复杂题型
- 保留原始题号和完整题目信息
- 处理速度快,4道题不到1秒钟
为什么要用这个脚本?
| 对比项 | 手动整理 | 用脚本 |
|---|---|---|
| 100道题耗时 | 2-3小时 | 5秒钟 |
| 出错率 | 5-10% | 0% |
| 重复使用 | 每次都要做 | 一次编写,永久使用 |
| 心情 | 😫 | 😎 |
快速开始
第一步:准备数据
- 将试题放在Excel的第一列
- 保存为
data.xlsx
第二步:安装依赖
pip install pandas openpyxl
第三步:运行脚本
python script.py
第四步:获得结果
- 自动生成
整理后题库.xlsx - 打开即用!
适用场景
教师整理试卷
学生制作错题本
培训机构管理题库
在线教育平台数据处理
考试复习资料整理
企业员工培训题库
资格证考试备考
财务、法律等专业领域题库整理
小贴士
- 支持多种选项格式:A、 A. A. 都能识别
- 支持A-F六个选项:轻松处理多选题
- 答案识别灵活:支持"答:"和"答:"两种格式
- 自动去重:重复的题目也能正确处理
- 支持多行答案:ABC、ABCD等多选答案完美处理
- 保留原始信息:题号、题目、选项、答案一个不少
全部实现代码
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内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Mac更新python3.12 解决pip3安装报错问题小结
Mac使用homebrew更新了python3.12,删除了以前的版本和pip3安装软件时候报错,下面小编给大家分享Mac更新python3.12 解决pip3安装报错问题,感兴趣的朋友跟随小编一起看看吧2024-05-05
VS2022+Python3.11实现C++调用python接口
在C/C++中嵌入Python,可以使用Python提供的强大功能,通过嵌入Python可以替代动态链接库形式的接口,本文主要介绍了VS2022+Python3.11实现C++调用python接口,感兴趣的可以了解一下2023-12-12


最新评论