python中使用docx庫操作word文檔記錄(1)- 讀取文本和表格


python中使用docx庫操作word文檔記錄(1)- 讀取文本和表格

本文記錄docx庫讀取word文本和表格的方法

一、使用docx模塊

Python可以利用python-docx模塊處理word文檔,處理方式是面向對象的。也就是說python-docx模塊會把word文檔,文檔中的段落、文本、字體等都看做對象,對對象進行處理就是對word文檔的內容處理。

安裝方法為:pip install python-docx

二、相關概念

先了解python-docx模塊的幾個概念。

1,Document對象,表示一個word文檔。
2,Paragraph對象,表示word文檔中的一個段落
3,Paragraph對象的text屬性,表示段落中的文本內容。

在這里插入圖片描述

三、讀取文本

from docx import Document #導入庫

path = 'ys.docx' #文件路徑
wordfile = Document(path) #讀入文件

paragraphs = wordfile.paragraphs 

#輸出每一段的內容
for paragraph in wordfile.paragraphs: 
    print(paragraph.text +"\n end")

 
#輸出段落編號及段落內容
for i in range(len(wordfile.paragraphs)):
 print("第"+str(i)+"段的內容是:"+wordfile.paragraphs[i].text)

如果不需要獲取文本中的空行,則可以增加下面的判斷條件:

if paragraphs[i].text.strip()!="": # 去空行
或者
if paragraph.text.count("\n") == len(paragraph.text): # 去空行

四、讀取表格

from docx import Document #導入庫

path = '1.docx' #文件路徑
document = Document(path) #讀入文件
tables = document.tables #獲取文件中的表格集

print(len(tables)) #獲取文件中的表格數量

for table in tables:#遍歷每一個表格
    for row in table.rows:#從表格第一行開始循環讀取表格數據
    	for cell in row.cells:#遍歷每一個單元格
    		print(cell.text) #獲取單元格的內容
'''  
后面兩行也可以用下面的方式
        for j in range(len(row.cells)):
           print(row.cells[j].text)
'''

這里要說明一下,不是word里面所有的表格都能正確讀取。

如下圖:帶一個錨,表格外圍有虛線的這類表格提取不到,不知道有沒有好的方法。

這類的表格一般是pdf或者其他系統生成的表格,並非直接在word中插入的表格。
在這里插入圖片描述


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM