相景麗
(山西職業(yè)技術學院,山西 太原 030006)
Python語言以其強大的處理能力與平臺兼容性,被廣泛應用于各個行業(yè)的軟件項目開發(fā)中,而Python框架的數據表文件處理機制對于以Office和WPS為代表的辦公軟件的無人自動化操作具有良好的適用性。
隨著計算機技術的普及,各企業(yè)中基本實現了基于Office或WPS的信息化辦公模式,辦公軟件的廣泛應用在減少紙張消耗、提升信息傳遞效率、實現數據規(guī)范化方面有著巨大優(yōu)勢。但隨著企業(yè)規(guī)模的擴大,日常辦公所產生的數據文件的數量也隨之大幅增長,各部門所提交的大量Excel數據表文件往往需要安排專人逐一打開后按照規(guī)范進行集中處理,在此過程中存在著大量重復的繁瑣操作,采用人工處理模式不僅效率低下、且存在錯誤率高的問題。Python-pandas模塊作為專用的數據表處理引擎,在實現Excel數據表文件的自動化批量處理工作方面有著優(yōu)異表現[1],因此本文嘗試引入Python框架來解決大批量規(guī)范化處理Excel數據表文件的問題。
本文所設計的Excel數據表文件自動批量處理程序的實現流程如圖1所示,程序首先獲取到文件夾中全部待處理數據表文件的文件名并構建文件名集合,然后自動讀取文件名集合中的第一個文件并按照用戶指定的規(guī)則對數據表文件中的相應數據進行處理,在處理完成后進行該文件的保存操作。接下來,程序自動從文件名集合中讀取下一個數據表文件并重復以上操作步驟,直到全部數據表文件被處理完畢。
圖1 自動批量處理工作的流程圖
Python開發(fā)框架中提供的os模塊為開發(fā)人員提供了管理和訪問文件系統(tǒng)的功能,在本應用中,通過該模塊自動獲取所有的待處理Excel文件的名字記錄集,并基于此記錄集實現對全部待處理的Excel文件的遍歷操作,程序可以逐一從記錄集中讀取文件名稱并對該Excel文件進行訪問。而pandas模塊則提供了強大的數據表處理能力[2],程序基于該模塊來構建用戶所提出的數據處理規(guī)則,并對數據表中的行、列進行相應的數據添加、更新和刪除操作。
同時,為應對可能出現的個別Excel數據表中的內容或格式錯誤導致程序崩潰的情況,在數據處理階段可以引入錯誤捕獲和拋出機制try-except,將出現內容錯誤的文件名做輸出提示處理后,直接讀取下一個數據表文件并繼續(xù)自動進行數據處理。避免因發(fā)生文件數據錯誤而導致自動化批量處理任務的中斷。
1) 在Python程序中導入支持模塊,其中pandas模塊用于處理Excel中的數據,os模塊則用于訪問文件系統(tǒng)。
import pandas as exl
import os
2) 使用Python os模塊所提供的listdir()方法獲取文件夾中全部待處理的Excel數據文件的文件名并構建文件名記錄集,并基于該記錄集進行對所有Excel數據文件的遍歷處理操作。
Excl_name = os.listdir(r'文件夾路徑')#獲取全部數據表文件名并創(chuàng)建記錄集
for i in range(len(Excl_name)): #使用len函數獲取記錄集的長度,即待處理文件的總數,并以此構建循環(huán)結構逐一處理數據文件
3) 文件的讀取與保存使用Python pandas模塊所提供的read_excel()方法和to_excel()方法實現。而Excel數據表文件中數據的處理操作則通過insert()、loc()、at()、drop()方法完成。
efile = exl.read_excel('文件夾路徑' + Excl_name [i]) #讀取文件
try: #開始捕獲異常
efile.insert(插入位置, '新列的名稱', '初始值') #添加列操作,位置值基于0開始
efile = efile.drop(['要刪除的列名'],axis=1)#刪除列操作
df.loc[行號,'列名稱']=新數據 #更新數據的操作
df.at['行名稱'] = [數據隊列]#添加行操作
df.drop(df.index[行號隊列], inplace=True) #刪除行操作
except Exception as e: #記錄出現錯誤的文件名
print("文件出現異常:",Excl_name [i])
continue #繼續(xù)處理下一個數據文件
efile.to_excel('D://excel_py//' + Excl_name [i])#將更新結果保存至數據文件
需要注意的是,在Python對Excel文件的自動化處理過程中,pandas模塊的部分功能依賴于以下三個模塊:fsspec、xlwt和xlwd運行[3],因此除了需要在程序中直接調用pandas與os模塊以外,還需要基于Pip服務在Python開發(fā)框架中部署fsspec模塊、xlwt和xlwd模塊,為pandas對數據表文件進行讀取和保存操作提供支持。
隨著辦公軟件的廣泛應用,企業(yè)在運營管理過程中產生了大量的Excel數據表文件需要處理,傳統(tǒng)的人工處理方式存在效率低、易出錯的問題。而Python語言在數據自動化處理方面所具備的優(yōu)勢,在Excel數據表文件的數據處理工作方面有著優(yōu)異表現。本文所提出的解決方案基于Python-os、Python- pandas等模塊實現了對大批量Excel數據表文件的自動化處理,有效提升了企業(yè)的信息化辦公水平與日常工作效率。