Python腳本實現(xiàn)自動化處理Excel選擇題
親愛的各位小伙伴,你是否經(jīng)歷過這樣的困境:
手里有一份雜亂的試題庫,題目、選項、答案混在一起,想要整理成規(guī)范的表格格式,卻要手動復(fù)制粘貼幾百道題?
別急!今天我要分享一個超實用的Python腳本,讓你5秒鐘自動整理任意數(shù)量的選擇題,從此告別手動整理的噩夢。
這個腳本能做什么?
想象一下,你的原始數(shù)據(jù)是這樣的:

運行腳本后,你會得到這樣的Excel表格:
| 題目 | 選項A | 選項B | 選項C | 選項D | 答案 |
|---|---|---|---|---|---|
| 1.下列選項中哪項不屬于間接申報的范圍?( ) | A、資本項目管理涉外收付款 | B、貨物貿(mào)易進出口核查涉外收付款 | C、代發(fā)工資類涉外收付款 | D、境內(nèi)居民個人通過境內(nèi)銀行與境內(nèi)非居民個人之間發(fā)生的人民幣收付款 | D |
| 2.關(guān)于境內(nèi)居民通過境內(nèi)銀行與境外非居民發(fā)生的收入和支付款項,下列哪項說法不正確的是( )。 | A、由境內(nèi)居民分別按照其資金來源和資金用途性質(zhì)進行申報 | B、境內(nèi)銀行應(yīng)在基礎(chǔ)信息中的"對方付款人/收款人名稱"前添加"(JW)"字樣 | C、"付款人/收款人常駐國家(地區(qū)) "填寫境外非居民的常駐國家或地區(qū) | C |
完全自動化,零手動操作!
核心功能拆解
智能讀取Excel
df = pd.read_excel('data.xlsx', header=None)
lines = df[0].dropna().astype(str).tolist()
- 讀取Excel第一列的所有數(shù)據(jù)
- 自動清理空行,轉(zhuǎn)換為列表
按題號自動切分
questions = re.split(r'\n(?=\d+\.)', text.strip())
- 使用正則表達式識別題號(1. 2. 3.)
- 自動將混亂的文本分割成獨立的題目
精準提取信息
- 題目:第一行
- 選項:識別 A、B、C… 開頭的行
- 答案:用正則表達式查找"答:"后的內(nèi)容
結(jié)構(gòu)化輸出
result_df.to_excel("整理后題庫.xlsx", index=False)
- 生成規(guī)范的Excel表格
- 每道題一行,每個字段一列
案例展示
這個腳本已成功處理過涉外收付款申報、財務(wù)管理、法律法規(guī)等多個領(lǐng)域的試題庫。
處理前的混亂數(shù)據(jù):
62.境內(nèi)銀行涉外收付款憑證包括哪些?
A、《涉外收入申報單》
B、《境外匯款申請書》
C、《對外付款/承兌通知書》
D、《境內(nèi)收入申報單》
E、《境內(nèi)匯款申請書》
F.《境內(nèi)付款/承兌通知書》
答:ABC
87.一般情況下,對外付款/承兌通知書中的付款金額應(yīng)滿足以下哪幾個平衡關(guān)系: ( )
A、付款金額=現(xiàn)匯金額+購匯金額+其他金額
B、付款金額≥現(xiàn)匯金額+購匯金額+其他金額
C、付款金額=第一行交易編碼對應(yīng)的金額+第二行交易編碼對應(yīng)的金額
D、付款金額=實際付款金額
E、《境內(nèi)匯款申請書》
答:AC
處理后的規(guī)范表格:
| 題號 | 題目 | 選項A | 選項B | 選項C | 選項D | 選項E | 選項F | 答案 |
|---|---|---|---|---|---|---|---|---|
| 62 | 境內(nèi)銀行涉外收付款憑證包括哪些? | A、《涉外收入申報單》 | B、《境外匯款申請書》 | C、《對外付款/承兌通知書》 | D、《境內(nèi)收入申報單》 | E、《境內(nèi)匯款申請書》 | F、《境內(nèi)付款/承兌通知書》 | ABC |
| 87 | 一般情況下,對外付款/承兌通知書中的付款金額應(yīng)滿足以下哪幾個平衡關(guān)系 | A、付款金額=現(xiàn)匯金額+購匯金額+其他金額 | B、付款金額≥現(xiàn)匯金額+購匯金額+其他金額 | C、付款金額=第一行交易編碼對應(yīng)的金額+第二行交易編碼對應(yīng)的金額 | D、付款金額=實際付款金額 | AC |
看!再復(fù)雜的題目也能完美處理!
特別亮點:
- 自動識別多選題(ABC、AC等多個答案)
- 支持A-F六個選項,輕松處理復(fù)雜題型
- 保留原始題號和完整題目信息
- 處理速度快,4道題不到1秒鐘
為什么要用這個腳本?
| 對比項 | 手動整理 | 用腳本 |
|---|---|---|
| 100道題耗時 | 2-3小時 | 5秒鐘 |
| 出錯率 | 5-10% | 0% |
| 重復(fù)使用 | 每次都要做 | 一次編寫,永久使用 |
| 心情 | ?? | ?? |
快速開始
第一步:準備數(shù)據(jù)
- 將試題放在Excel的第一列
- 保存為
data.xlsx
第二步:安裝依賴
pip install pandas openpyxl
第三步:運行腳本
python script.py
第四步:獲得結(jié)果
- 自動生成
整理后題庫.xlsx - 打開即用!
適用場景
教師整理試卷
學生制作錯題本
培訓機構(gòu)管理題庫
在線教育平臺數(shù)據(jù)處理
考試復(fù)習資料整理
企業(yè)員工培訓題庫
資格證考試備考
財務(wù)、法律等專業(yè)領(lǐng)域題庫整理
小貼士
- 支持多種選項格式:A、 A. A. 都能識別
- 支持A-F六個選項:輕松處理多選題
- 答案識別靈活:支持"答:"和"答:"兩種格式
- 自動去重:重復(fù)的題目也能正確處理
- 支持多行答案:ABC、ABCD等多選答案完美處理
- 保留原始信息:題號、題目、選項、答案一個不少
全部實現(xiàn)代碼
import pandas as pd
import re
# =========================
# 讀取Excel
# =========================
df = pd.read_excel('data.xlsx', header=None)
# 第一列轉(zhuǎn)列表
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)
# =========================
# 輸出結(jié)果
# =========================
result_df = pd.DataFrame(result)
# 保存Excel
result_df.to_excel("整理后題庫.xlsx", index=False)
print(result_df)
這個腳本完全開源免費,你可以:
- 直接使用
- 根據(jù)需要修改
- 分享給朋友
- 用于商業(yè)項目
到此這篇關(guān)于Python腳本實現(xiàn)自動化處理Excel選擇題的文章就介紹到這了,更多相關(guān)Python自動化處理Excel內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
LangChain簡化ChatGPT工程復(fù)雜度使用詳解
這篇文章主要為大家介紹了LangChain簡化ChatGPT工程復(fù)雜度使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-03-03
python 采用paramiko 遠程執(zhí)行命令及報錯解決
這篇文章主要介紹了python 采用paramiko 遠程執(zhí)行命令及報錯解決,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2019-10-10
Python實現(xiàn)數(shù)據(jù)可視化大屏布局的示例詳解
數(shù)據(jù)可視化大屏展示需求無疑是對數(shù)據(jù)分析結(jié)果最好的詮釋,能夠使得別人能夠輕松的就理解我們的數(shù)據(jù)意圖。本文將通過pyecharts模塊來實現(xiàn),感興趣的可以了解一下2022-11-11
使用Python快速提取PPT中的文本內(nèi)容的代碼示例
本文將介紹如何使用Python程序提取PowerPoint演示文稿中的文本內(nèi)容,包括幻燈片中的主體文本、幻燈片備注文本以及幻燈片,文中通過代碼示例給大家介紹的非常詳細,具有一定的參考價值,需要的朋友可以參考下2024-03-03

