1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        Python自動(dòng)批量Word數(shù)據(jù)到Excel

        共 2172字,需瀏覽 5分鐘

         ·

        2021-07-29 09:40


        ## 問(wèn)題背景


        我有很多個(gè)Word文件:



        里面的每個(gè)word文件中,都有數(shù)據(jù)表格



        怎樣把批量的word文件的表格數(shù)據(jù)提取出來(lái),放到excel中呢



        ## 導(dǎo)入代碼包


        用到了python-docs這個(gè)庫(kù),需要自己安裝


        # pip install python-docxfrom docx import Documentimport pandas as pdimport os


        ## 編寫解析函數(shù)


        注意,當(dāng)做一個(gè)普通的table解析即可,用cell(row, col)讀取確定單元格的內(nèi)容文本。


        def parse_docfile(doc_file):    doc = Document(doc_file)    table = doc.tables[0]        return dict(        姓名 = table.cell(0, 1).text, 性別 = table.cell(0, 3).text,        民族 = table.cell(0, 5).text, 出生年月 = table.cell(0, 7).text,
        參加工作時(shí)間 = table.cell(1, 1).text, 學(xué)歷 = table.cell(1, 3).text, 籍貫 = table.cell(1, 5).text, 政治面貌 = table.cell(1, 7).text,
        畢業(yè)院校 = table.cell(2, 1).text, 專業(yè) = table.cell(2, 4).text, 職務(wù) = table.cell(2, 7).text,
        工作單位 = table.cell(3, 1).text, 報(bào)考類別 = table.cell(3, 7).text,
        工作簡(jiǎn)歷 = table.cell(4, 1).text.strip(), 工作業(yè)績(jī) = table.cell(5, 1).text.strip(), 單位推薦意見 = table.cell(6, 1).text.strip(), 領(lǐng)導(dǎo)意見 = table.cell(7, 1).text.strip(), )


        ## 單個(gè)word的測(cè)試


        parse_docfile("優(yōu)秀教師選拔考試報(bào)名表/優(yōu)秀教師選拔考試報(bào)名表(劉備).docx")


        輸出結(jié)果為:


        {'姓名': '劉備', '性別': '男', '民族': '漢', '出生年月': '1956.11', '參加工作時(shí)間': '1975.7', '學(xué)歷': '本科', '籍貫': '成都', '政治面貌': '蜀漢', '畢業(yè)院校': '成都大學(xué)', '專業(yè)': '體育', '職務(wù)': '大將軍', '工作單位': '成都第一中學(xué)', '報(bào)考類別': '語(yǔ)文', '工作簡(jiǎn)歷': '從簡(jiǎn)', '工作業(yè)績(jī)': '優(yōu)秀', '單位推薦意見': '同意', '領(lǐng)導(dǎo)意見': '同意'}


        ## 結(jié)合os模塊,做批量解析


        初始化結(jié)果數(shù)據(jù)結(jié)構(gòu)


        # 列名columns = None# 數(shù)據(jù)內(nèi)容datas = []


        實(shí)現(xiàn)for循環(huán)解析


        for file in os.listdir("優(yōu)秀教師選拔考試報(bào)名表"):    if file.endswith(".docx"):        file_path = f"優(yōu)秀教師選拔考試報(bào)名表/{file}"                print("解析文件", file_path)                data = parse_docfile(file_path)                if not columns:            columns = list(data.keys())                    datas.append([data[column] for column in columns])


        程序輸出結(jié)果為:


        解析文件 優(yōu)秀教師選拔考試報(bào)名表/優(yōu)秀教師選拔考試報(bào)名表(張飛).docx解析文件 優(yōu)秀教師選拔考試報(bào)名表/優(yōu)秀教師選拔考試報(bào)名表(周瑜).docx解析文件 優(yōu)秀教師選拔考試報(bào)名表/優(yōu)秀教師選拔考試報(bào)名表(曹操).docx解析文件 優(yōu)秀教師選拔考試報(bào)名表/優(yōu)秀教師選拔考試報(bào)名表(小喬).docx解析文件 優(yōu)秀教師選拔考試報(bào)名表/優(yōu)秀教師選拔考試報(bào)名表(曹植).docx解析文件 優(yōu)秀教師選拔考試報(bào)名表/優(yōu)秀教師選拔考試報(bào)名表(劉備).docx


        ## 使用pandas輸出到excel文件


        df = pd.DataFrame(datas, columns = columns)
        df.to_excel("優(yōu)秀教師選拔考試報(bào)名表.xlsx", index=False)


        查看結(jié)果excel文件:



        ## 本代碼的視頻講解



        謝謝,如果對(duì)你幫助,點(diǎn)個(gè)贊呀!


        瀏覽 55
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            成人无码区免费AⅤ片向日葵视频 | 另类老妇性bbwbbw小说 | 操逼黄色网 | 成人黄网免费观看视频 | 甘婷婷三级做爰未删减版 | 成人啪视频 | 日无码在线 | 成人免费三级 | 免费色片在线观看 | 医生别停啊摁摁h别进来 |