說說如何使用 python-docx 讀取 word 文檔

1 基本用法

import docx

doc = docx.Document('示例文檔.docx')
print('段落數:')
print(len(doc.paragraphs))

print('第一段內容文本=' + doc.paragraphs[0].text)

print('第一段內容中的 Run 對象個數:')
print(len(doc.paragraphs[0].runs))

print('遍歷第一段內容中的 Run 對象:')
for i in range(0, len(doc.paragraphs[0].runs)):
    print(doc.paragraphs[0].runs[i].text)

運行結果:

段落數:
2
第一段內容文本=概要設計說明書又可稱系統設計說明書。
第一段內容中的 Run 對象個數:
3
遍歷第一段內容中的 Run 對象:
概要設計說明書又可稱
系統設計說明書

  • 調用 docx.Document() 會加載整個 docx 文檔,放入返回的 Document 對象中。
  • Document 對象擁有 paragraphs 屬性,對其調用 len(),就會返回 docx 中的段落總數。
  • 每個 Paragraph 對象都有 text 屬性,存放的是段落中的字符串信息,注意: 這裏不包括樣式。
  • 每個 Paragraph 對象也有一個 runs 屬性,它是存放 Run 對象的列表。 Run 對象也有 text 屬性,這個屬性包含其內部的字符串信息。

2 讀取整篇文檔

我們可以利用上述方法,寫一個讀取整篇文檔的通用方法:

import docx


def get_text(file_path, indent_size=0):
    '''
    :param file_path: 文件路徑
    :param indent_size: 段落縮進空格寬度
    :return:獲取文檔中的所有內容
    '''
    doc = docx.Document(file_path)
    texts = []
    indent = ''
    for i in range(0, indent_size):
        indent = indent + ' '
    for paragraph in doc.paragraphs:
        texts.append(indent + paragraph.text)
    return '\n'.join(texts)

這樣使用它:

from read_docx import get_text
...

print('----讀取整篇文檔內容(純文本)----')
print(get_text('示例文檔.docx'))
print()
print('----加上段落縮進空格寬度-----')
print(get_text('示例文檔.docx',4))

運行結果:

----讀取整篇文檔內容(純文本)----
概要設計說明書又可稱系統設計說明書。

概要設計是一個設計師根據用戶交互過程和用戶需求來形成交互框架和視覺框架的過程,其結果往往以反映交互控件佈置、界面元素分組以及界面整體板式的頁面框架圖的形式來呈現。這是一個在用戶研究和設計之間架起橋樑,使用戶研究和設計無縫結合,將對用戶目標與需求轉換成具體界面設計解決方案的重要階段。

----加上段落縮進空格寬度-----
    概要設計說明書又可稱系統設計說明書。
    
    概要設計是一個設計師根據用戶交互過程和用戶需求來形成交互框架和視覺框架的過程,其結果往往以反映交互控件佈置、界面元素分組以及界面整體板式的頁面框架圖的形式來呈現。這是一個在用戶研究和設計之間架起橋樑,使用戶研究和設計無縫結合,將對用戶目標與需求轉換成具體界面設計解決方案的重要階段。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章