官术网_书友最值得收藏!

  • 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查看對象的方法屬性和幫助信息。

主站蜘蛛池模板: 昔阳县| 偏关县| 广安市| 康平县| 富平县| 朝阳区| 姜堰市| 咸丰县| 达孜县| 玛沁县| 浙江省| 洛川县| 吉木乃县| 武隆县| 凤庆县| 沽源县| 塔河县| 抚松县| 长汀县| 榆树市| 康乐县| 清涧县| 洛川县| 贺州市| 响水县| 九台市| 德安县| 临颍县| 古交市| 峨眉山市| 秭归县| 星座| 微山县| 宝坻区| 贵溪市| 仙桃市| 余江县| 安阳县| 忻城县| 纳雍县| 两当县|