操作DOCX文件

252 阅读1分钟

简介

Word 是非常常见的文件格式, 可以使用 python 来操作 Word 文档.

格式类型

Word 有两种类型的文档, 文件后缀分别为 .doc.docx. 前者是 Office 2003 时的格式, 后者是 Office 2007 以后推出的新格式. 通常来说, 我建议大家使用新版本, 但是免不了很多时候会使用老版本.

转换 doc 为 docx 文件

这是在 linux 上使用的, 需要借助 soffice. 如果需要在 windows 上操作, 建议使用 win32com. 这里有一个参考连接.

import glob
import subprocess
from pathlib import Path

"""
借助 soffice 将 doc 转换为 docx
"""

base_dir = Path(__file__).resolve().parent
print(base_dir)

doc_list = glob.glob(base_dir.as_posix() + "/**/*.doc", recursive=True)
print(doc_list)


for doc in doc_list:
    subprocess.call(
        [
            "soffice",
            "--headless",
            "--convert-to",
            "docx",
            "--outdir",
            Path(doc).parent.as_posix(),
            doc,
        ]
    )


doc_list = glob.glob(base_dir.as_posix() + "/**/*.docx", recursive=True)
print(doc_list)s

读写 docx 文件

这里推荐使用 python-docx.

pip install python-docx

简单使用

from docx import Document

doc = Document(doc_path)

# 读取表格列表
table_list = doc.tables
# 读取段落
paragraph_list = [x.text.strip() for x in doc.paragraphs if x.text.strip()]

更多的内容可以参考官方文档.

小结

现在, 我们已经可以使用 python 转换 doc 为 docx 文件, 并从中读取内容了.