📜  如何在 python 中读取 docx 文件(1)

📅  最后修改于: 2023-12-03 14:52:31.128000             🧑  作者: Mango

如何在 Python 中读取 docx 文件

如果你需要对 Word 文档(.docx 文件)进行文本处理,你可能需要在 Python 中读取 docx 文件。在 Python 中读取 docx 文件有很多方法,这里介绍两种最常用的方法。

方法一:使用 python-docx 库

python-docx 库是一个 Python 库,它可以让你读取和修改 Word 文档。你可以使用 pip 包管理器安装它:

pip install python-docx

读取 docx 文件的步骤如下:

  1. 导入 docx 模块。
import docx
  1. 使用 docx.Document() 函数读取文档。
doc = docx.Document("filename.docx")
  1. 遍历文档中的段落(paragraphs)或表格(tables)。
# 遍历段落
for para in doc.paragraphs:
    print(para.text)

# 遍历表格
for table in doc.tables:
    for row in table.rows:
        for cell in row.cells:
            print(cell.text)

完整代码示例:

import docx

doc = docx.Document("filename.docx")

# 遍历段落
for para in doc.paragraphs:
    print(para.text)

# 遍历表格
for table in doc.tables:
    for row in table.rows:
        for cell in row.cells:
            print(cell.text)
方法二:使用 zipfile 库

Zipfile 库是 Python 的标准库之一,它可以将压缩文件解压缩并读取其中的文件。由于 docx 文件实际上是一组 XML 文件和图像文件的 ZIP 压缩包,因此可以使用 zipfile 库来读取。

读取 docx 文件的步骤如下:

  1. 导入 zipfile 和 io 模块。
import zipfile
from io import BytesIO
  1. 打开 docx 文件并读取其中的内容。
with zipfile.ZipFile("filename.docx", "r") as docx:
    content = docx.read("word/document.xml")
  1. 使用标准库的 xml.etree.ElementTree 或者任何其他的 XML 解析库来分析内容。

完整代码示例:

import zipfile
from io import BytesIO
import xml.etree.ElementTree as ET

with zipfile.ZipFile("filename.docx", "r") as docx:
    content = docx.read("word/document.xml")
    tree = ET.fromstring(content)

    # 遍历段落
    for paragraph in tree.iter("{http://schemas.openxmlformats.org/wordprocessingml/2006/main}p"):
        text = ""
        for elem in paragraph.iter():
            if elem.text:
                text += elem.text
        print(text)

以上两种方法都可以让你在 Python 中读取 docx 文件。如果你不需要对文档进行修改,那么 python-docx 库是更好的选择,因为它提供了更方便的方法来读取和处理文档。