Python實現(xiàn)自動合并Word并添加分頁符
本文介紹基于Python,實現(xiàn)對多個Word文檔加以自動合并,并在每次合并時按要求增添一個分頁符的方法。
現(xiàn)有多個Word文檔文件,需將其按名稱順序合并為一個新的Word文件,且需保證每一次合并時,都另起一頁(即新的Word文件一頁中,不能出現(xiàn)兩個及以上的原本單個Word文件的內(nèi)容)。
一般的,實現(xiàn)多個Word文件的合并,在Word中可以通過“插入”→“文本”→“對象”的方式進行,較為方便。
在彈出的窗口中選擇需要合并的Word文件即可。
但是,這種方法工作量較大,且無法滿足合并時另起一頁的要求。例如,如果原本有兩個Word文件,每個文件中都僅有一頁,一頁中僅在第一行有內(nèi)容(這里假設(shè)是一行數(shù)字),則合并后的新Word文件同樣為一頁,該頁中包含兩行數(shù)字,即無法另起一頁合并。
因此,本文就結(jié)合Python
中python-docx
(docx
)模塊與docxcompose
模塊,實現(xiàn)本文開頭提及的需求。
首先安裝python-docx
模塊。由于我用的是Anaconda,因此就直接在Anaconda Prompt (Soft)中加以安裝。
打開Anaconda Prompt (Soft)。
在彈出的界面中輸入:
conda install -c conda-forge python-docx
輸入y
,開始安裝。
隨后即可安裝完成。
接下來安裝docxcompose
,還是一樣的操作。輸入:
pip install docxcompose
安裝完成后,即可開始代碼的書寫。整體代碼如下:
import os from docx import Document from docxcompose.composer import Composer original_docx_path='F:/其他學生工作/2020就業(yè)聯(lián)絡(luò)員/2021.06派遣材料與調(diào)檔函/地信1701_就業(yè)派遣材料/' new_docx_path='F:/其他學生工作/2020就業(yè)聯(lián)絡(luò)員/2021.06派遣材料與調(diào)檔函/地信1701.docx' all_word=os.listdir(original_docx_path) all_file_path=[] for file_name in all_word: all_file_path.append(original_docx_path+file_name) master=Document(all_file_path[0]) middle_new_docx=Composer(master) num=0 for word in all_file_path: word_document=Document(word) word_document.add_page_break() if num!=0: middle_new_docx.append(word_document) num=num+1 middle_new_docx.save(new_docx_path)
首先,對代碼加以初步介紹。original_docx_path
為存放需要合并的Word文件路徑,new_docx_path
為需要合并入其中的Word文件,這里大家直接在目標路徑下新建一個Word文件并重命名為需要的文件名即可。
隨后,通過os.listdir
獲取所有需要合并的Word文件文件名。在這里需要注意,如果需要按照文件名稱作為合并順序,大家直接在資源管理器中調(diào)整文件排序方法為名稱即可。隨后通過.append()
逐一將文件名稱與其路徑合并。
接下來,設(shè)立一個Word文件模板master
。其實這個模板就是限定了合并完成后的新Word文件的字體等格式,如果我們不設(shè)置模板,就會用docx
模塊中的默認模板,導致合并后的文件字體與合并前的文件字體不一致(內(nèi)容是一致的,主要是字體等格式會出問題)。在這里,為了保證合并完成后的新Word文件的字體等格式與合并前文件一致,直接用all_file_path[0]
(也就是即將要被合并的第一個文件)作為模板即可。其次,將模板用Composer()
激活(這里Composer
函數(shù)個人認為就是激活的作用),從而將其作為模板格式,對多個待合并的文件加以約束。
最后,由于需要保證每一次合并都另起一頁,便用.add_page_break()
函數(shù),在每一次合并前將這一待合并的文件末尾增添分頁符。同時,由于我們用了第一個待合并文件作為模板,因此后期只需要從第二個文件開始進行合并即可(可以理解為,文件一旦選擇為模板,其自動完成了自身的合并)。最后保存文件即可。
綜上,便完成了“按名稱順序合并為一個新的Word文件,且需保證每一次合并時,都另起一頁”的需求。但是需要注意,這一方法對于較為復(fù)雜的Word文件(例如含有文本框等形式內(nèi)容的文件)不能實現(xiàn)合并,會報錯;對于含有普通文字、圖片等的Word文件而言,還是很方便的~
以上就是Python實現(xiàn)自動合并Word并添加分頁符的詳細內(nèi)容,更多關(guān)于Python自動合并Word的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
利用Python實現(xiàn)在同一網(wǎng)絡(luò)中的本地文件共享方法
今天小編就為大家分享一篇利用Python實現(xiàn)在同一網(wǎng)絡(luò)中的本地文件共享方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-06-06Python3使用tracemalloc實現(xiàn)追蹤mmap內(nèi)存變化
這篇文章主要為大家詳細介紹了在Python3中如何使用tracemalloc實現(xiàn)追蹤mmap內(nèi)存變化,文中的示例代碼講解詳細,感興趣的可以了解一下2023-03-03cv2.getStructuringElement()函數(shù)及開、閉、腐蝕、膨脹原理講解
getStructuringElement()函數(shù)可用于構(gòu)造一個特定大小和形狀的結(jié)構(gòu)元素,用于圖像形態(tài)學處理,這篇文章主要介紹了cv2.getStructuringElement()函數(shù)及開、閉、腐蝕、膨脹原理講解的相關(guān)資料,需要的朋友可以參考下2022-12-12Pandas 數(shù)據(jù)處理,數(shù)據(jù)清洗詳解
今天小編就為大家分享一篇Pandas 數(shù)據(jù)處理,數(shù)據(jù)清洗詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-07-07