Python使用docx模塊編輯Word文檔
前言
該模塊可以通過python代碼來對word文檔進行大批量的編輯。docx它提供了一組功能豐富的函數(shù)和方法,用于創(chuàng)建、修改和讀取Word文檔。下面是docx
模塊中一些常用的函數(shù)和方法的介紹:
安裝:
pip install docx
一、準(zhǔn)備一個word文檔
文檔內(nèi)容大致如下
二、讀取文檔中的內(nèi)容
1、讀取段落內(nèi)容
通過遍歷 doc.paragraphs 來獲取文檔中的每個段落的文本內(nèi)容。
from docx import Document path = 'test.docx' #word文檔路徑 doc = Document(path) #創(chuàng)建一個文檔對象 #遍歷文檔中的所有段落 for par in doc.paragraphs: text = par.text print(text)
輸出的結(jié)果如下:
2、讀取表格內(nèi)容
from docx import Document path = 'test.docx' #word文檔路徑 doc = Document(path) #創(chuàng)建一個文檔對象 # 遍歷文檔中的表格 for table in doc.tables: for row in table.rows: for cell in row.cells: text = cell.text print(text)
輸出的結(jié)果如下:
三、修改
修改內(nèi)容需要注意,需要配合document.save(file_path):將文檔保存到指定的文件路徑file_path。
1、修改文檔內(nèi)容
比如把文檔中的 “所有的123” 替換成 “好好學(xué)習(xí)”
from docx import Document path = 'test.docx' #word文檔路徑 doc = Document(path) #創(chuàng)建一個文檔對象 # 遍歷文檔中的所有段落 for par in doc.paragraphs: text = par.text if '123' in par.text: par.text = par.text.replace('123','好好學(xué)習(xí)!') #凡是有保存功能的,需要先把原文檔關(guān)閉才可以編輯 doc.save(path) #注意這里如果使用的原文檔的路徑,則會直接對原文檔的內(nèi)容進行修改, new_path = 'new_test.docx' #創(chuàng)建一個新路徑 doc.save(new_path) #這里則會把內(nèi)容保存到一個新文檔中
輸出結(jié)果:
因為我這里保存了兩個路徑:
1、可以看到這里新生成了一個word文檔
2、查看兩個文檔中的內(nèi)容
原文檔:
新生成文檔:
總結(jié):
1、思路:
先定位修改的內(nèi)容——>然后賦值——>保存(沒有修改的內(nèi)容都會原樣保存下來)
2、運行修改的功能時候需要把原文檔關(guān)閉;
3、如果不生成新的文檔則切記,修改內(nèi)容不可逆?。。?nbsp;
2、修改表格內(nèi)容
把表格中的 “休息” 替換成 “預(yù)習(xí)”
這里可以多復(fù)制幾張表格
按照上面的思路來:
1、先定位,找到修改目標(biāo)的坐標(biāo)
from docx import Document path = 'test.docx' #word文檔路徑 doc = Document(path) #創(chuàng)建一個文檔對象 tables = doc.tables #獲取表格中所有內(nèi)容對應(yīng)的坐標(biāo) for i, row in enumerate(tables[0].rows): for j, cell in enumerate(row.cells): print( f'[+]{cell.text} [+]對應(yīng)的坐標(biāo)是 ({i}, {j})\n')
輸出結(jié)果:
這里注意(這里找坐標(biāo)和我們平時看表的習(xí)慣不一樣,他們并沒有邏輯上的關(guān)系,而只是單純的坐標(biāo)來對應(yīng))
2、記住這個坐標(biāo)我們后面就可以對所有的表進行修改:
注意下面代碼中的 cell(2,1) 中的坐標(biāo)就是上面我們找到的坐標(biāo),通過tables[tab]是逐一遍歷出每一張表格,然后把對應(yīng)的坐標(biāo)文檔替換為 '預(yù)習(xí)'.
from docx import Document path = 'test.docx' #word文檔路徑 doc = Document(path) #創(chuàng)建一個文檔對象 tables = doc.tables #這里已經(jīng)把文檔中的所有表格都取出來了,以列表的形式存儲 #獲取表格中所有內(nèi)容對應(yīng)的坐標(biāo) for tab in range(len(tables)): tables[tab].cell(2,1).text='預(yù)習(xí)' # #凡是有保存功能的,需要先把原文檔關(guān)閉才可以編輯 doc.save(path) #注意這里如果使用的原文檔的路徑,則會直接對原文檔的內(nèi)容進行修改,
輸出結(jié)果:
到此這篇關(guān)于Python使用docx模塊編輯Word文檔的文章就介紹到這了,更多相關(guān)Python docx編輯Word內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python數(shù)據(jù)可視化編程通過Matplotlib創(chuàng)建散點圖代碼示例
這篇文章主要介紹了Python數(shù)據(jù)可視化編程通過Matplotlib創(chuàng)建散點圖實例,具有一定借鑒價值,需要的朋友可以參考下。2017-12-12Python基礎(chǔ)學(xué)習(xí)之模塊的安裝和卸載
其實現(xiàn)在還是有很多剛開始學(xué)習(xí)的小伙伴,會遇到模塊不會安裝的情況,或者一遇到報錯就懵了,這樣就很耽誤我們的學(xué)習(xí)進度。所以,今天我們就來了解一下Python幾種安裝模塊的方法吧2022-09-09