亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

python讀取指定目錄下Excel表所有sheet的數(shù)據(jù)

系統(tǒng) 2293 0

最近想嘗試著做一個接口自動化的腳本,首先得需要從文件中讀取數(shù)據(jù),很早之前更新過一篇,但是局限性較大,一次性只能讀取一個Excel的一張sheet表,且讀取出的格式也無法滿足要求,找了好多方法,終于研究出來啦。

也遇到了很多坑,因?yàn)樽詫W(xué)python,沒有系統(tǒng)的學(xué)習(xí)過,基礎(chǔ)知識也不扎實(shí),且平時工作也沒有用到,過段時間就需要從頭學(xué)起 =_=,所以遇到的坑都是基礎(chǔ)知識沒掌握到的原因啦。記錄一下吧,方便以后復(fù)習(xí)或知識回顧。

現(xiàn)在是坑:

            
              def getTables():
    for excel in os.listdir(data_path):
        print(excel)
        if excel.startswith('~'):
            break
        excelPath = os.path.join(data_path, excel)
        excels = xlrd.open_workbook(excelPath)
        sheetNames = excels.sheet_names()
        print('sheetNames:',sheetNames)
        return sheetNames #這兒我就直接把獲取到的sheet名return了,這是一個list類型

def getData(sheets):
    data = []
    for i in range(2, sheets.nrows):#寫這兒的時候,sheets無法自動帶出nrows,強(qiáng)行寫上去也會報錯
        data.append(dict(zip(sheets.row_values(1), sheets.row_values(i))))
    print('讀取出的data:',data)

getData(getTables())
            
          

一直提示這個: python讀取指定目錄下Excel表所有sheet的數(shù)據(jù)_第1張圖片

既然list沒有這個方法,len()也可以獲取所有的行數(shù)啊,所以我就換成了len(),這樣:

            
              def getData(sheets):
    data = []
    for i in range(2, len(sheets)):
        data.append(dict(zip(sheets.row_values(1), sheets.row_values(i))))
    print('讀取出的data:',data)
            
          

?然而還是不行:

python讀取指定目錄下Excel表所有sheet的數(shù)據(jù)_第2張圖片

于是再回頭看了下之前寫的test,恍然大悟:

附上正確的代碼

            
              import os,xlrd

data_path = os.path.join('F:\pythonProjrect\itf_simple','data')#os.path.join()函數(shù):連接兩個或更多的路徑名
print(data_path)

#獲取目錄下所有Excel中sheet
def getTables():
    for excel in os.listdir(data_path):#os.listdir() 方法用于返回指定的文件夾包含的文件或文件夾的名字的列表
        print(excel)
        if excel.startswith('~'):
            break
        excelPath = os.path.join(data_path, excel)#拼接路徑
        excels = xlrd.open_workbook(excelPath)
        sheetNames = excels.sheet_names()#獲取目錄下所有sheet的名字,sheetNames為list類型
        print('sheetNames:',sheetNames)
        # 循環(huán)從sheetNames中讀取sheet表,返回的是sheet的內(nèi)存地址
        for sheet in sheetNames:
            table = excels.sheet_by_name(sheet)
        print('table:',table)
        return table
#從getTables()中返回的table中提取數(shù)據(jù),sheet中的數(shù)據(jù)組成一個列表,Excel中的表頭和數(shù)據(jù)分別組成key:value的格式
def getData(sheets):
    data = []
    for i in range(2, sheets.nrows):
        data.append(dict(zip(sheets.row_values(1), sheets.row_values(i))))
    print('讀取出的data:',data)

getData(getTables())

            
          

這樣就運(yùn)行出來啦~


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 国产精品福利午夜h视频 | 国产精品久久一区一区 | 国产精品成人免费观看 | 欧美久草| 97在线亚洲 | 99精品久久99久久久久久 | 久草福利站 | 一级大黄视频 | 尤物视频在线播放 | 亚洲欧美日韩另类 | 亚洲欧美日韩国产vr在线观 | 亚洲国产天堂久久精品网 | 一本一道波多野结衣一区二区 | 国产精品亚洲专一区二区三区 | 国产精品原创永久在线观看 | 国产一区二区三区影院 | 欧美亚洲国产精品久久高清 | 久久精品人| 亚洲欧美中文字幕专区 | 嫩操影院| 在线欧美激情 | 精品视频在线观看一区二区 | 欧美黑人乱大交ⅹxxxxx | 亚洲综合图片小说区热久久 | 亚洲精品乱码久久久久久 | 午夜欧美福利视频 | 日本一级特黄视频 | www.色在线 | 亚洲国产精品一区二区首页 | 一区二区三区四区国产精品 | 日本亚洲欧美国产日韩ay高清 | 国产第8页 | 成人精品在线 | 欧美视频在线观看 | 97影院理论片 | 久久久99精品免费观看精品 | 色偷偷亚洲 | 精品一区二区三区在线观看l | 精品99视频 | 欧美日韩中文字幕在线手机版本 | 91伊人久久 |