Python 實現(xiàn)docx文件的讀寫操作
我們在做一些數(shù)據(jù)統(tǒng)計或分析的時候,有時會接觸到Execl 格式或者Word 格式的文件。Execl格式的數(shù)據(jù)提取和解析,我們在之前的文章分享過一些非常好用的Python第三方庫,本文中主要介紹如何使用Python python-docx 模塊提取Word 文件中的文本信息和表格數(shù)據(jù)。
python-docx 安裝
本文python-docx 安裝 在Windows 10系統(tǒng),Python3 環(huán)境中使用pip進行安裝。


演示文本
為了方便理解,我們以 python-docx.docx 文件為例,演示如何使用Python 提取其中的文本數(shù)據(jù)和表格數(shù)據(jù),并開發(fā)自定義函數(shù)以字典的形式提取內(nèi)容,python-docx.docx文件內(nèi)容如下:

在使用python-docx 讀取word文檔中文本之前,我們先了解下python-docx 模塊的幾個概念。
- Document 對象,表示一個Word文檔。
- Paragraph 對象,表示W(wǎng)ord文檔中的一個段落。
- Paragraph 對象的text屬性,表示段落中的文本內(nèi)容。
提取docx文件中文本信息
使用python-docx 提取docx文件中文本數(shù)據(jù),Python實現(xiàn)代碼如下:

如上,我們將python-docx.docx 文件中的文本信息,按行提取出來,存儲到字典中,字典的Key為行號,Value為文本信息,執(zhí)行上述代碼,輸出結(jié)果如下:

提取docx文件中表格數(shù)據(jù)
使用python-docx 提取docx文件中表格數(shù)據(jù),Python實現(xiàn)代碼如下:

如上,我們將python-docx.docx 文件中的表單信息,按行提取出來,存儲到列表中,列表每個元素為一個表格的數(shù)據(jù),數(shù)據(jù)結(jié)構(gòu)為字典,執(zhí)行上述代碼輸出結(jié)果如下:

寫入數(shù)據(jù)到docx文件中
我們同樣可以利用python-docx 模塊,實現(xiàn)docx文件的數(shù)據(jù)寫入,如標題、字號、引用、列表、圖片插入等等。由于如下代碼注釋中說明比較詳細,此處不做過多介紹,代碼如下:

執(zhí)行上述代碼,寫入數(shù)據(jù)保存至testops—docx.docx 文件中,內(nèi)容如下:

提取包含指定關鍵字的文本
我們基于上述自定義封裝函數(shù) extract_text、extract_form,結(jié)合re 模塊,就可以實現(xiàn)提取包含關鍵字的文本內(nèi)容,代碼實現(xiàn)如下:

如上,我們實現(xiàn)了提取docx 文本中包含指定內(nèi)容的文本信息,并輸出該內(nèi)容所在行,執(zhí)行上述代碼,輸出結(jié)果為:
