欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用Python批量處理Excel文件并轉(zhuǎn)為csv文件示例

 更新時(shí)間:2023年12月13日 11:56:41   作者:艾派森  
這篇文章主要介紹了使用Python批量處理Excel文件并轉(zhuǎn)為csv文件示例,文中通過(guò)代碼示例給大家介紹非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下

前言

今天一位正在國(guó)企實(shí)習(xí)的朋友突然私信找到我,說(shuō)領(lǐng)導(dǎo)派了個(gè)離譜的活,大概就是需要將一個(gè)大文件夾里面的excel文件進(jìn)行簡(jiǎn)單處理后再轉(zhuǎn)為csv格式的文件,然后這個(gè)大文件里面有五個(gè)二級(jí)文件夾,這五個(gè)二級(jí)文件夾里面都有一個(gè)三級(jí)文件夾,然后每個(gè)三級(jí)文件夾里面都有14-18個(gè)四級(jí)文件夾,每個(gè)四級(jí)文件夾里面有31個(gè)excel文件和極少量csv文件夾。聽(tīng)起來(lái)層級(jí)是不是特別饒,而且加起來(lái)總共有2000多個(gè)excel文件。處理的話是將表格中的時(shí)間列格式進(jìn)行轉(zhuǎn)換,最后存儲(chǔ)為csv文件。這要是人工一個(gè)一個(gè)文件弄,這得累死人,這種重復(fù)的工作當(dāng)然是交給腳本啦!

一、Python處理Excel

  • Python處理Excel的好處

1.批量操作:當(dāng)要處理眾多Excel文件時(shí),例如出現(xiàn)重復(fù)性的手工勞動(dòng),那么使用Python就可以實(shí)現(xiàn)批量掃描文件、自動(dòng)化進(jìn)行處理,利用代碼代替手工重復(fù)勞動(dòng),實(shí)現(xiàn)自動(dòng)化,是Python第一個(gè)比Excel強(qiáng)大的地方

2.大型文件,當(dāng)Excel文件超過(guò)幾十兆、甚至上百兆時(shí),打開(kāi)文件很慢、處理文件更加慢,這時(shí)候若使用Python,會(huì)發(fā)現(xiàn)處理幾十兆、幾百兆甚至幾GB都是沒(méi)有問(wèn)題的

3.當(dāng)使用Excel進(jìn)行復(fù)雜的計(jì)算時(shí),會(huì)使用VBA,但是VBA本身是過(guò)時(shí)并且復(fù)雜的語(yǔ)言,Python是當(dāng)前最簡(jiǎn)單且容易實(shí)現(xiàn)的一門(mén)語(yǔ)言,用Python能夠處理比VBA難度更高的業(yè)務(wù)邏輯

4.Python是通用語(yǔ)言,不僅可以處理Excel,使用Python就可以得到很多額外的功能,例如:爬蟲(chóng)、發(fā)布網(wǎng)頁(yè)的Web服務(wù)、與數(shù)據(jù)庫(kù)進(jìn)行連接、同時(shí)結(jié)合word和PPT進(jìn)行處理、加入定時(shí)任務(wù)處理、人工智能分析等,各種額外的功能,這是Excel和VBA所不具備的

  • Python處理Excel主要有三大類(lèi)庫(kù)

1.pandas:是Python領(lǐng)域非常重要的,用于數(shù)據(jù)分析和可視化的類(lèi)庫(kù),在處理Excel中,90%可以利用pandas類(lèi)庫(kù)就可以搞掂,利用pandas就可以讀取Excel、處理Excel和輸出Excel,但是pandas也有缺點(diǎn),就是無(wú)法做到格式類(lèi),例如Excel中合并單元、大量復(fù)雜的樣式(看起來(lái)很精美)的時(shí)候,用pandas無(wú)法搞掂,此時(shí),依然是使用pandas結(jié)合openyxl、xlwings來(lái)搞掂需求

2.openpyxl:若電腦上未安裝office時(shí),也可以使用openpyxl,這個(gè)類(lèi)型可以運(yùn)行在linux上,并且也可以實(shí)現(xiàn)操作大部分Excel格式和樣式的功能,使用它配合pandas,也可以完成大部分場(chǎng)景的需求

3.xlwings:比openyxl更加強(qiáng)大,只能運(yùn)行在Windows或者M(jìn)ac系統(tǒng),并且該系統(tǒng)中必須安裝了office才能運(yùn)行,xlwings的原理,就是基于當(dāng)前系統(tǒng)已經(jīng)安裝好的office軟件,來(lái)進(jìn)行功能的拓展來(lái)操作Excel

  • 使用pandas的時(shí)候,經(jīng)常會(huì)結(jié)合其他類(lèi)庫(kù),來(lái)完成更加復(fù)雜的功能

    • requests, bs4:可以完成爬蟲(chóng)的功能

    • flask:可以做網(wǎng)頁(yè),把表格展示在網(wǎng)頁(yè)上

    • Matplotlib:讀取表格后,進(jìn)行可視化

    • sklearn:進(jìn)行復(fù)雜的數(shù)據(jù)分析時(shí),也可以結(jié)合機(jī)器學(xué)習(xí)Sklearn把讀取的Excel數(shù)據(jù),進(jìn)行數(shù)據(jù)分析和機(jī)器學(xué)習(xí)

    • Python-docx:也可以結(jié)合Python-docx類(lèi)庫(kù),實(shí)現(xiàn)Excel和word的互通

    • smtplib:也可以使用smtplib,講Excel數(shù)據(jù)發(fā)送郵件出去

  • 開(kāi)發(fā)環(huán)境

操作系統(tǒng):使用windows, mac都可以

Python版本:系統(tǒng)中需要安裝Python3.6以上的版本,Python2已經(jīng)過(guò)期不建議使用,Python3.6以前的版本功能相對(duì)弱,最好就是采用Python3.6以上的版本

開(kāi)發(fā)工具:有兩個(gè)可以選擇,jupyter notebook,是個(gè)網(wǎng)頁(yè)編輯器,可以運(yùn)行Python,常常用于交互性、探索性的開(kāi)發(fā);pycharm,用于成熟腳本,或者web服務(wù)的一些開(kāi)發(fā);這兩個(gè)工具可以隨意選擇。

二、批量處理Excel文件并轉(zhuǎn)為csv文件

技術(shù)工具:

Python版本:3.9

代碼編輯器:jupyter notebook

處理思路

寫(xiě)代碼之前我們首先需要針對(duì)這個(gè)需求在腦子里做出一個(gè)流程圖出來(lái),大概就是使用os庫(kù)層層遍歷文件夾,當(dāng)遍歷到excel文件這一級(jí)路徑時(shí),我們使用pandas讀取excel文件,將time時(shí)間列轉(zhuǎn)為時(shí)間序列類(lèi)型并符合要求格式,接著使用pandas將處理后的文件保存為csv文件并輸出在同一路徑下,最后再將原始excel文件進(jìn)行刪除即可。

處理過(guò)程

首先看一下文件夾路徑結(jié)構(gòu)

然后我寫(xiě)的腳本與sample_data在同一級(jí)

具體腳本代碼如下:

import pandas as pd
import os
from datetime import datetime
# 基礎(chǔ)文件夾路徑
base_dir = './sample_data'
 
# 循環(huán)遍歷到每一個(gè)excel文件并修改其文件類(lèi)型為csv
for first_floor in os.listdir(base_dir):  # 遍歷第一層
    second_floor_dir = base_dir+'/'+first_floor  # 獲取第二層的文件路徑
    for second_floor in os.listdir(second_floor_dir):  # 遍歷第二層
        third_floor_dir = base_dir+'/'+first_floor+'/'+second_floor  # 獲取第三層的文件路徑
        for third_floor in os.listdir(third_floor_dir):  # 遍歷第三層
            fourth_floor_dir = base_dir+'/'+first_floor+'/'+second_floor+'/'+third_floor  # 獲取第四層的文件路徑
            for file_dir in os.listdir(fourth_floor_dir):  # 遍歷第四層
                file_name = file_dir.split('.')[0]  # 獲取excel文件名稱(chēng)
                file_suffix = file_dir.split('.')[1]  # 獲取excel文件后綴
                print(fourth_floor_dir)
                if file_suffix=='xlsx' or file_suffix=='xls': # 判斷文件是否是excel文件
                    df = pd.read_excel(fourth_floor_dir+'/'+file_dir)  # 讀取excel文件
                    df['Time'] = pd.to_datetime(df['Time'])
                    df['Time'] = df['Time'].apply(lambda x:datetime.strftime(x,'%Y-%m-%d %H:%M:%S'))
                    df.to_csv(fourth_floor_dir+'/'+file_name+'.csv',index=False)  # 將excel文件保存為csv文件
                    os.remove(fourth_floor_dir+'/'+file_dir)  # 刪除原來(lái)的excel文件

首先定義基礎(chǔ)文件夾路徑,接著使用os.listdir()獲取文件夾列表,嵌套四層循環(huán)即可到達(dá)excel文件的路徑下,然后使用字符串切割獲取文件名和后綴,判斷后綴是否為excel文件,是的話就使用pandas讀取數(shù)據(jù),然后轉(zhuǎn)換列類(lèi)型并轉(zhuǎn)為要求格式,最后保存為csv文件并刪除原來(lái)excel文件。運(yùn)行之后就大功告成啦!

最后還得到了朋友的肯定,其實(shí)學(xué)Python并不一定要去做程序員,像這種辦公軟件(excel、PPT、word)在公司里都是必備技能,但是當(dāng)要處理的文件太多或者都是一些重復(fù)性的工作,那此時(shí)你用Python寫(xiě)個(gè)自動(dòng)化腳本來(lái)做,省時(shí)又省力,提高工作效率,同時(shí)還能獲得領(lǐng)導(dǎo)的欣賞。

以上就是使用Python批量處理Excel文件并轉(zhuǎn)為csv文件示例的詳細(xì)內(nèi)容,更多關(guān)于Python處理Excel并轉(zhuǎn)為csv的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評(píng)論