使用python-docx
库读取Word文档并提取标题、子标题和内容的基本步骤如下:
- 安装
python-docx
库(如果尚未安装)。 - 打开Word文档。
- 遍历文档中的段落。
- 根据段落的样式识别标题、子标题和正文内容。
- 按顺序打印标题、子标题和内容。
以下是一个简单的Python脚本示例,它演示了如何执行这些步骤:
from docx import Document
def print_doc_structure(doc_path):
# 打开Word文档
doc = Document(doc_path)
# 遍历文档中的每个段落
for para in doc.paragraphs:
# 根据段落的样式进行判断
if para.style.name.startswith('Heading 1'):
print(f"标题: {para.text}")
elif para.style.name.startswith('Heading 2'):
print(f"子标题: {para.text}")
else:
print(f"内容: {para.text}")
# 替换以下路径为你的Word文档的路径
doc_path = 'your_document_path.docx'
print_doc_structure(doc_path)
请确保将your_document_path.docx
替换为你的Word文档的实际路径。
注意,Word文档中的样式名称可能会有所不同,具体取决于文档的格式和使用的模板。上面的脚本假设标题和子标题分别使用了内置的Heading 1
和Heading 2
样式。如果你的文档使用了不同的样式名称,你需要相应地调整代码中的样式名称。
段落样式
在python-docx
中,para.style.name
返回的是当前段落所使用的样式名称。Word文档中的样式名称可能因模板和用户自定义而异。然而,有一些常见的预定义样式名称是在大多数Word文档中通用的。以下是一些常见的内置样式名称:
Normal
: 默认的段落样式。Heading 1
: 用于主标题。Heading 2
: 用于一级子标题。Heading 3
: 用于二级子标题。Heading 4
: 用于三级子标题。Heading 5
: 用于四级子标题。Title
: 用于文档标题。Subtitle
: 用于文档副标题。List Bullet
: 用于带项目符号的列表。List Number
: 用于编号列表。Quote
: 用于引用文本。Intense Quote
: 用于强调引用文本。TOC Heading
: 用于目录标题。
这些样式名称是根据Word的默认样式设置的。如果你在Word中自定义了样式或者使用了特定的模板,样式名称可能会有所不同。在处理Word文档时,你可以通过打开Word文档并查看“样式”窗格来确认文档中使用的确切样式名称。
在使用python-docx
进行编程时,可以通过遍历文档中的所有样式来获取所有的样式名称,代码示例如下:
from docx import Document
doc = Document('your_document_path.docx')
# 打印所有的样式名称
for style in doc.styles:
print(style.name)
这段代码将列出你的文档中定义的所有样式名称,包括内置样式和任何自定义样式。这样可以帮助你确定需要在代码中查找的确切样式名称。