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

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

