◆林鵬 孟硯怡/房縣審計(jì)局
大數(shù)據(jù)的運(yùn)用給包括審計(jì)在內(nèi)的各行各業(yè)帶來(lái)了前所未有的機(jī)遇與挑戰(zhàn)。本文介紹大數(shù)據(jù)背景下,基于Python的數(shù)據(jù)分析算法在審計(jì)中的應(yīng)用,探索了一種整合Python代碼的方法,將審計(jì)人員使用的對(duì)數(shù)據(jù)進(jìn)行整理、挖掘和分析的過(guò)程代碼化,通過(guò)整合匯總成一個(gè)控制臺(tái),最后將Python語(yǔ)句打包成exe可執(zhí)行文件。此方法解決了Python入門(mén)門(mén)檻的問(wèn)題,不會(huì)Python語(yǔ)言的審計(jì)人員,也可以使用Python語(yǔ)句快速分析數(shù)據(jù),提高審計(jì)效率。
Python作為一種簡(jiǎn)潔、可擴(kuò)展性強(qiáng)的面向?qū)ο蟮木幊陶Z(yǔ)言,已廣泛應(yīng)用于數(shù)據(jù)分析、文本處理等領(lǐng)域。采用Py?thon語(yǔ)言開(kāi)發(fā)控制平臺(tái),實(shí)現(xiàn)常用數(shù)據(jù)分析方法的匯集,為大數(shù)據(jù)分析提供更多更好的工具。程序主體分為兩個(gè)模塊:控制臺(tái)模塊和數(shù)據(jù)分析工具模塊。
在程序開(kāi)始時(shí),首先進(jìn)入的是系統(tǒng)主界面,這里做了一個(gè)簡(jiǎn)單的交互程序設(shè)計(jì),顯示可選擇的功能菜單,可通過(guò)數(shù)字或上下方向鍵選擇菜單。Python的代碼匯總平臺(tái)如圖1。
圖1
首先,導(dǎo)入默認(rèn)庫(kù)中的os類(lèi),利用os類(lèi)中的input和re函數(shù),獲得使用者選項(xiàng)的過(guò)程代號(hào)。然后,將可用的Python語(yǔ)句封裝成過(guò)程,再使用一個(gè)循環(huán)語(yǔ)句,通過(guò)代號(hào)調(diào)用該過(guò)程,實(shí)現(xiàn)數(shù)據(jù)分析。代碼如圖2。
圖2
Python有豐富的擴(kuò)展庫(kù)可用于完成各種高級(jí)任務(wù),為展示匯總平臺(tái)的有效性,本文使用Python進(jìn)行編程,實(shí)現(xiàn)不打開(kāi)excel文件,就可以對(duì)excel進(jìn)行查看的功能。
首先,也是利用os模塊下的input函數(shù),對(duì)用戶輸入的文件地址進(jìn)行處理,自動(dòng)列出文件的全路徑和文件名。然后,通過(guò)選擇序號(hào)的方式選中要查看的excel文件。
從待查看的excel文件中獲取文件信息,首先,使用openpyxl庫(kù)打開(kāi)文件。由于openpyxl不支持xls文件,在數(shù)據(jù)準(zhǔn)備階段需要將舊版的xls文件全部轉(zhuǎn)換為后綴名為xl?sx的excel文件。然后,利用openpyxl庫(kù)中的load_workbook讀出文件的表名、行、字段等基本信息。最后,使用雙重循環(huán),遍歷文件中的前5行并打印。這樣就實(shí)現(xiàn)了在不打開(kāi)表格的情況下查看數(shù)據(jù)的功能。
步驟一:將反復(fù)用到的代碼定義為一個(gè)函數(shù),使用處理后的返回值。這里定義了一個(gè)名為ch_one_file()的函數(shù),用于獲取文件的全路徑和文件名,得到的結(jié)果使用return()返回。如圖3。
圖3
步驟二:采用函數(shù)調(diào)用的方式使用代碼。調(diào)用ch_one_file()函數(shù)后,filename就是經(jīng)過(guò)處理后的文件的全路徑和文件名。如圖4。
圖4
步驟三:使用循環(huán)語(yǔ)句,打印界面給可調(diào)用的函數(shù)編號(hào),方便用戶使用。如圖5。
圖5
通過(guò)Python語(yǔ)句處理excel,不需要考慮平臺(tái)、程序設(shè)計(jì)等方面的問(wèn)題,同時(shí),這種形式可以推廣到更多的Python代碼使用上。熟悉Python語(yǔ)句的審計(jì)人員,可以將日常收集到的代碼集合在后面,讓更好的經(jīng)驗(yàn)被更多的人應(yīng)用。
在對(duì)某縣民政救助資金審計(jì)中,審計(jì)人員采集到的銀行發(fā)放花名冊(cè)是以月為單位存儲(chǔ)的。為了全面核對(duì)發(fā)放的人數(shù)和金額,審計(jì)人員需面對(duì)上百?gòu)埥Y(jié)構(gòu)相同的excel文件。在利用數(shù)據(jù)分析技術(shù)前,對(duì)這些文件的匯總、統(tǒng)計(jì)是一項(xiàng)重復(fù)而且繁瑣的任務(wù)。因此,審計(jì)組利用平臺(tái)中匯總的處理excel的Python代碼,在不打開(kāi)文件的情況下查看文件結(jié)構(gòu),并進(jìn)行簡(jiǎn)單處理。具體步驟如下:
步驟一:獲得銀行發(fā)放花名冊(cè)表格,將所有帶匯總的文檔集中到一個(gè)文件夾,在功能菜單中,輸入數(shù)字“1”,Py?thon調(diào)用函數(shù)insert(),將進(jìn)入查看excel文件里表格信息的功能。如圖6。
步驟二:Python代碼將文件夾下的所有文件進(jìn)行編號(hào),使用者選擇編號(hào)就可以選擇文件,避免了人工輸入出現(xiàn)錯(cuò)誤的情況。通過(guò)Python代碼就可以一次性查到整個(gè)文件夾下的所有excel文件結(jié)構(gòu)和前5行數(shù)據(jù)。如圖7。
圖7
Python具有腳本語(yǔ)言中最豐富和最強(qiáng)大的類(lèi)庫(kù),這些類(lèi)庫(kù)覆蓋了文件輸入輸出、數(shù)據(jù)庫(kù)訪問(wèn)、文本操作等絕大部分應(yīng)用場(chǎng)景。案例基于Python交互代碼的使用,可以用來(lái)匯總好的代碼。例如:寫(xiě)一段批量改文件名代碼,命名為 rename(),在本案例后添加 option_int==2:rename(),運(yùn)行后就可以通過(guò)編號(hào)調(diào)用該代碼。
[圖片新聞]
為弘揚(yáng)中華民族愛(ài)老敬老的傳統(tǒng)美德,咸豐縣審計(jì)局組織開(kāi)展了重陽(yáng)節(jié)“愛(ài)老三部曲”系列活動(dòng),為退休老干部送關(guān)懷、送溫暖、送健康。
(段寅雪 攝影報(bào)道)