- Python程序設計
- 張雪萍主編
- 1023字
- 2019-06-19 15:48:34
3.3 處理Word文件
使用Python處理Word文件時,可以使用Python-docx庫和Win32com庫來完成。
3.3.1 Python-docx庫
由于 Win32com 庫只對 Windows 平臺有效,而 Python-docx 庫不依賴操作系統(tǒng)[5],具有跨平臺特性,因此,這里主要介紹使用Python-docx庫來處理Word文件。
如果你安裝的是Anaconda3,在Windows的命令行窗口通過輸入“pip list”會發(fā)現(xiàn)系統(tǒng)已經安裝好了Python-docx庫。這也是使用Anaconda安裝包的好處之一。
但請注意,在寫代碼時,導入的名字是“docx”而不是“Python-docx”:

當然,在導入庫或模塊前通常要查詢一下該模塊是否已經安裝,如果沒有安裝,就請按照第1.3節(jié)介紹的安裝庫的方法進行安裝。
可以在Windows命令行窗口通過輸入“pip list”命令來查看已經安裝的庫。

3.3.2 利用Python-docx庫讀Word文件
Python利用Python-docx庫來處理Word文件,它把Word文件中的段落、文本、字體等都看作對象來進行處理。因此,需要先了解幾個相關概念。
用三種不同的類型來表示.docx 文件的結構,Document 對象表示整個文件,它包含一個 Paragraph 對象的列表;Paragraph 對象表示文件中的段落,以回車鍵為準,文件中的所有段落形成一個Paragraph對象構成的列表;每個Paragraph對象包含一個Run對象的列表,即在一個段落中,根據(jù)字體的不同形成一個 Run 對象的列表。.docx 文件里面不光包含了文本字符串,還有字號、字體、顏色等屬性,它們都包含在 style(樣式)中。一個Run對象就是style相同的一段文本,新建一個Run就有新的style。

通過以上程序打開文件,但此時無法查看文件的具體內容。利用 type()測試文件對象的類型,可發(fā)現(xiàn)它的確是一個Document對象。

可以通過Paragraph對象獲得文件的段落信息,Paragraph對象是一個列表。

要獲得每個段落里的具體內容,需要使用Paragraph對象的text屬性。

【例 3-18】 假設文件位于“D:\PythonTest\word_document\test.docx”,編程顯示文件每個段落的內容。要求在每個段落內容顯示前輸出是第幾個段落,以及此段落共計多少個字符。

【例3-19】 理解Run對象[6]。

請大家事先準備好可用于測試的.docx 文件,例如,準備好如下所示內容的測試文件“Run_test_1.docx”,然后運行以上程序。通過觀察輸出的結果,可發(fā)現(xiàn)每個 Run 對象其實就是樣式相同的一段文本,而每個Run對象都將執(zhí)行一次循環(huán),輸出對應的文本內容、字體樣式、字號大小和字體顏色,默認字體顏色是“None”。

一個Run對象就是style相同的一段文本[6],如下所示:

3.3.3 利用Python-docx庫創(chuàng)建Word文件
【例 3-20】 創(chuàng)建 Word 文件,用 input()函數(shù)輸入要創(chuàng)建的段落數(shù),并設置段落文字的字體、顏色、字號等。

運行程序后,請自行打開文件查看程序運行的結果。
特別說明:
(1)如果要創(chuàng)建的Word文件不存在,則新建一個Word文件。
(2)如果要創(chuàng)建的 Word 文件已經存在,請在運行程序之前,關閉要創(chuàng)建的 Word文件,否則會報錯!
更多內容大家可以查看幫助,也可以用dir和help查看對象的方法屬性和幫助信息。
- OpenStack Cloud Computing Cookbook(Third Edition)
- ReSharper Essentials
- Power Up Your PowToon Studio Project
- Mastering Natural Language Processing with Python
- Mastering matplotlib
- 面向STEM的Scratch創(chuàng)新課程
- 深入理解Java7:核心技術與最佳實踐
- Learning Neo4j 3.x(Second Edition)
- FPGA Verilog開發(fā)實戰(zhàn)指南:基于Intel Cyclone IV(進階篇)
- ExtJS Web應用程序開發(fā)指南第2版
- 從0到1:HTML5 Canvas動畫開發(fā)
- Java從入門到精通(視頻實戰(zhàn)版)
- Mastering XenApp?
- HTML5+jQuery Mobile移動應用開發(fā)
- HTML 5與CSS 3權威指南(第4版·上冊)