最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用python實(shí)現(xiàn)讀取文件夾中所有excel

 更新時間:2025年12月22日 09:45:42   作者:三腳貓功夫猴  
相信很多坐在辦公室上班的朋友每天都需要處理大量的數(shù)據(jù),本文我們就來看看如何使用Openpyxl讀取文件夾下所有Excel文檔中的數(shù)據(jù),文中示例代碼講解詳細(xì),感興趣的小伙伴可以了解下

相信很多坐在辦公室上班的朋友每天都需要處理大量的數(shù)據(jù),我們常常用Excel制作電子表格來幫助我們處理它們。這當(dāng)然是一種非常好的做法,但是我相信大家都會發(fā)現(xiàn),很多表格的內(nèi)容其實(shí)大同小異,常常需要我們把同樣的數(shù)據(jù)復(fù)制進(jìn)不同的表格里去,整理格式,然后提交給不同的人。這樣沒有意義的重復(fù)勞動會占用我們大量寶貴的時間。如果有什么人能幫我們把表格做好,我們只需確認(rèn)一下是否有誤然后提交即可,那么生活將會變得多么美好。

Openpyxl就是這樣一個得力的工具。

這是一個由Eric Gazoni和Charlie Clark開發(fā)的,是目前使用最廣泛的用Python操作Excel的庫開源庫,也是Pandas中默認(rèn)讀取表格數(shù)據(jù)的工具。

那么這個系列的文章——Python幫你做Excel——就是給大家提供一個簡單的Openpyxl的入門中文教程,讓大家能快速上手這個好用的小工具。

首先讓我們一起看一下,如何使用Openpyxl讀取Excel文檔中的數(shù)據(jù)。

openpyxl基礎(chǔ)概念

  • Excel文件通常被稱為電子表格,但在openpyxl中被稱為工作簿
  • 單個工作簿通常保存在擴(kuò)展名為.xlsx的文件中
  • 一個工作簿可能只有一個工作表,也可能有幾十個工作表
  • 活動工作表是用戶正在查看或關(guān)閉文件前查看的工作表
  • 每個工作表都由列組成,列的名字從A開始依次類推
  • 每個工作表都由行組成,每個行從1開始編號,依次類推
  • 行與列的交界處稱為單元格。每個單元格對于對應(yīng)的行和列就有了特定的地址。單元格內(nèi)可以包含數(shù)字,公式或者文字
  • 單元格組成的網(wǎng)格在excel中組成了工作區(qū)域或者說工作表

從Excel工作表中讀取數(shù)據(jù)

首先我們假設(shè)建一個Excel文件,命名為testfile.xlsx

以上是testfile.xlsx的數(shù)據(jù),你可以新建一個excel文件并把數(shù)據(jù)填進(jìn)去。 不過在正式使用openpyxl讀取這些數(shù)據(jù)之前,如果你不知道python的根目錄在哪,你可以在prompt(中文可以理解為命令提示符,或?qū)υ捒?中輸入如下代碼

import os  
os.getcwd( )

上述操作會在python中導(dǎo)入操作系統(tǒng)包,然后os.getcwd( )會讀取當(dāng)下的工作地址(get current working directory ——> getcwd() )。隨后python會告訴你當(dāng)下的工作地址,輸出的結(jié)果可能會是這樣

'C:Python36'

如果你想更換工作地址,就需要使用命令os.chdir()。比如你想讀取一個在C盤根目錄下的一個叫做myfiles的文件夾里的文件,那么你可能就可以輸入

os.ch.dir("c:/myfiles")

現(xiàn)在你就可以對C盤里myfiles文件夾里的文件進(jìn)行工作了!

用Python打開Excel文件

首先我們需要用這個語句在python中導(dǎo)入openpyxl模塊

import openpyxl

如果沒有錯誤信息提示,那就表示openpyxl模塊安裝正確,并且可以對excel文件進(jìn)行操作了。接下來需要做的是載入工作簿testfile.xlsx

wb= openpyxl.load_workbook('testfile.xlsx')

openpyxl.load_workbook()是一個函數(shù),它將文件名作為參數(shù)讀入然后返回一個工作簿的數(shù)據(jù)類型(workbook datatype)。工作簿數(shù)據(jù)類型實(shí)際上與python打開文件對象的類型是一樣的,使用下述的語句可以看到對handle的說明:

type (wb)  
<class 'openpyxl.workbook.workbook.Workbook'>

上面的第二行文字應(yīng)該會顯示在對話框中,此處我們對前面所有輸入的命令進(jìn)行個簡單的匯總展示

>>> import os  
>>> os.getcwd()  
'C:Python34'  
>>> import openpyxl  
>>> wb=openpyxl.load_workbook('testfile.xlsx')  
>>> type(wb)  
<class 'openpyxl.workbook.workbook.Workbook'>  
>>>

從加載的工作簿訪問工作表

現(xiàn)在我們已經(jīng)能夠訪問excel文件了,現(xiàn)在我們可以嘗試讀取文件里的數(shù)據(jù)。首先,如果想要訪問工作簿中工作表的數(shù)量以及它們的名字,可以使用函數(shù)get_sheet_names()。這個函數(shù)會返回工作表的名字,當(dāng)然你也可以數(shù)出工作表的總數(shù)。完整的代碼是這樣的

>>> wb.get_sheet_names()  
['Sheet1', 'Sheet2', 'Sheet3']

可以看到函數(shù)返回了三個工作表的名字,也就是說工作簿內(nèi)只含有三個工作表。那么現(xiàn)在你可以嘗試多操作幾次,比如手動修改這些工作表的名字,然后保存文件,隨后用上述代碼重新加載文件,看看工作表的名字是否有變動,當(dāng)然此處就不再多加贅述了。 在知道了工作表的名字之后,我們可以訪問其中的任何一個工作表了。假設(shè)我們想要訪問Sheet3,代碼就應(yīng)該是

>>> import openpyxl  
>>> wb=openpyxl.load_workbook('testfile.xlsx')  
>>> wb.get_sheet_names()  
['Sheet1', 'Sheet2', 'Sheet3']  
>>> sheet=wb.get_sheet_by_name('Sheet3')

函數(shù)get_sheet_by_name('Sheet3')可以訪問一個特定的工作表,它接收工作表的名字作為輸入,然后返回一個工作表對象。我們將其賦值給sheet變量,然后就可以對它進(jìn)行下述操作

>>> sheet  
<Worksheet "Sheet3">  
>>> type(sheet)  
<class 'openpyxl.worksheet.worksheet.Worksheet'>  
>>> sheet.title  
'Sheet3'  
>>>

如果只輸入sheet,那么就會輸出,該變量指向哪個工作表。在這里例子里,對話框就會返回工作表"Sheet3"。如果想要知道該變量的類型,則輸入type(sheet),此時就會返回變量sheet指向什么對象。sheet.title會返回sheet的標(biāo)題。 另外,如果我們想訪問活動的工作表,可以使用下述代碼,對話框就會返回活動工作表的名字了

>>> wb.active  
<Worksheet "Sheet1">

訪問工作表單元格中的數(shù)據(jù)

從工作表單元格中訪問數(shù)據(jù),首先應(yīng)用工作表,然后輸入單元格的地址,具體展示如下

>>> sheet['A2'].value  
datetime.datetime(2014, 7, 6, 4, 50, 30)

還有訪問單元格數(shù)據(jù)的另一個方法

>>> e=sheet['B2']  
>>> e.value  
'AB'  
>>> e.row  
2  
>>> e.column  
'B'  
>>>

還可以使用cell()函數(shù),將row和column作為參數(shù)輸入,讀取單元格數(shù)據(jù)

>>> sheet.cell(row=2, column=4)  
<Cell Sheet1.D2>  
>>> sheet.cell(row=2, column=4).value  
'Pencil'

現(xiàn)在讓我們來嘗試輸出整列的數(shù)據(jù),當(dāng)然,此處需要使用到循環(huán)語句。輸出整個列的代碼展示如下

>>> for x in range (1,9):  
        print(x,sheet.cell(row=x,column=4).value)

1 Item  
2 Pencil  
3 Binder  
4 Pencil  
5 Pen  
6 Pencil  
7 Binder  
8 Pencil  
>>>

在輸出了整列數(shù)據(jù)后,現(xiàn)在可以嘗試輸出多列的數(shù)據(jù)了。由于我們的文件很小,所以我們就輸出完整的表格。詳見下方代碼

for y in range (1,9,1):  
print(sheet.cell(row=y,column=1).value,sheet.cell(row=y,column=2).value,  
sheet.cell(row=y,column=3).value,sheet.cell(row=y,column=4).value,  
sheet.cell(row=y,column=5).value, sheet.cell(row=y,column=6).value,  
sheet.cell(row=y,column=7).value,sheet.cell(row=y,column=8).value)

這些代碼可以輸出工作表中的所有列,那么至此,我們已經(jīng)訪問了excel文件,將其載入內(nèi)存,訪問工作表以及單元格里的數(shù)據(jù)。

到此這篇關(guān)于使用python實(shí)現(xiàn)讀取文件夾中所有excel的文章就介紹到這了,更多相關(guān)python讀取文件夾中所有excel內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 判斷網(wǎng)頁編碼的方法python版

    判斷網(wǎng)頁編碼的方法python版

    這篇文章主要為大家詳細(xì)介紹了python代碼判斷網(wǎng)頁編碼的方法,感興趣的小伙伴們可以參考一下
    2016-08-08
  • Python中模塊(Module)和包(Package)的區(qū)別詳解

    Python中模塊(Module)和包(Package)的區(qū)別詳解

    這篇文章主要介紹了Python中模塊(Module)和包(Package)的區(qū)別詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • Python 比較兩個 CSV 文件的三種方法并打印出差異

    Python 比較兩個 CSV 文件的三種方法并打印出差異

    這篇文章主要介紹了Python 比較兩個 CSV 文件并打印出差異,本文將討論比較兩個 CSV 文件的各種方法,我們將包括執(zhí)行此操作的最“Pythonic”方式和可幫助簡化此任務(wù)的外部 Python 模塊,需要的朋友可以參考下
    2023-06-06
  • Python函數(shù)返回值之None類型的實(shí)現(xiàn)

    Python函數(shù)返回值之None類型的實(shí)現(xiàn)

    本文主要介紹了Python?函數(shù)返回值之None類型的使用小結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2026-04-04
  • Python使用add_subplot與subplot畫子圖操作示例

    Python使用add_subplot與subplot畫子圖操作示例

    這篇文章主要介紹了Python使用add_subplot與subplot畫子圖操作,涉及Python使用matplotlib模塊進(jìn)行圖形繪制的相關(guān)操作技巧,需要的朋友可以參考下
    2018-06-06
  • python Socket之客戶端和服務(wù)端握手詳解

    python Socket之客戶端和服務(wù)端握手詳解

    這篇文章主要為大家詳細(xì)介紹了python Socket之客戶端和服務(wù)端握手,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-09-09
  • Python裝飾器實(shí)現(xiàn)函數(shù)運(yùn)行時間的計(jì)算

    Python裝飾器實(shí)現(xiàn)函數(shù)運(yùn)行時間的計(jì)算

    這篇文章主要為大家詳細(xì)介紹了Python函數(shù)運(yùn)行時間的計(jì)算,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02
  • Python實(shí)現(xiàn)針對給定單鏈表刪除指定節(jié)點(diǎn)的方法

    Python實(shí)現(xiàn)針對給定單鏈表刪除指定節(jié)點(diǎn)的方法

    這篇文章主要介紹了Python實(shí)現(xiàn)針對給定單鏈表刪除指定節(jié)點(diǎn)的方法,結(jié)合實(shí)例形式分析了Python單鏈表的定義、節(jié)點(diǎn)添加、刪除、打印等相關(guān)操作技巧,需要的朋友可以參考下
    2018-04-04
  • 利用python代碼寫的12306訂票代碼

    利用python代碼寫的12306訂票代碼

    這篇文章主要介紹了利用python代碼寫的12306訂票代碼,自己寫的python代碼,是非常實(shí)用的技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-12-12
  • Python實(shí)現(xiàn)用戶登錄注冊

    Python實(shí)現(xiàn)用戶登錄注冊

    這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)用戶登錄注冊,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02

最新評論

万州区| 阿克| 从化市| 晋中市| 平昌县| 宁远县| 尖扎县| 金坛市| 东源县| 平安县| 大化| 和顺县| 永康市| 滕州市| 嵩明县| 宕昌县| 南涧| 柯坪县| 桃江县| 定陶县| 三明市| 嵊州市| 凌海市| 栾城县| 丰原市| 九寨沟县| 峨山| 盐源县| 静海县| 会宁县| 华容县| 阿鲁科尔沁旗| 外汇| 美姑县| 灵丘县| 曲靖市| 西盟| 阜新市| 巫溪县| 昆山市| 松滋市|