Python 操作 Word 文档可以使用以下库:
python-docx
:用于处理.docx
文件,支持读取和写入操作。pywin32
:用于操作 Microsoft Word 应用程序(适用于.doc
和.docx
文件,但仅在 Windows 上可用)。pandas
等库可结合用于数据转换。
以下是如何使用 python-docx
读写 Word 文档的详细教程:
1. 安装 python-docx
在开始之前,需要安装库:
pip install python-docx
2. 读取 Word 文档
使用 python-docx
读取 .docx
文件的内容。
示例代码
from docx import Document
# 打开 Word 文档
doc = Document("example.docx")
# 读取每个段落的内容
for paragraph in doc.paragraphs:
print(paragraph.text)
# 读取表格中的内容(如果有表格)
for table in doc.tables:
for row in table.rows:
for cell in row.cells:
print(cell.text)
3. 写入 Word 文档
使用 python-docx
创建并写入 .docx
文件。
示例代码
from docx import Document
# 创建一个新的 Word 文档
doc = Document()
# 添加标题
doc.add_heading("Python 文档处理示例", level=1)
# 添加段落
doc.add_paragraph("这是一个段落。")
doc.add_paragraph("可以添加多个段落。")
# 添加有序列表
doc.add_paragraph("有序列表项 1", style="List Number")
doc.add_paragraph("有序列表项 2", style="List Number")
# 添加无序列表
doc.add_paragraph("无序列表项 1", style="List Bullet")
doc.add_paragraph("无序列表项 2", style="List Bullet")
# 添加表格
table = doc.add_table(rows=2, cols=2)
table.cell(0, 0).text = "姓名"
table.cell(0, 1).text = "年龄"
table.cell(1, 0).text = "Alice"
table.cell(1, 1).text = "30"
# 保存文档
doc.save("output.docx")
4. 修改现有 Word 文档
可以读取并修改已有的 .docx
文件。
示例代码
from docx import Document
# 打开已有的 Word 文档
doc = Document("example.docx")
# 修改段落内容
for paragraph in doc.paragraphs:
if "目标文字" in paragraph.text:
paragraph.text = paragraph.text.replace("目标文字", "新内容")
# 添加新段落
doc.add_paragraph("这是新增的段落。")
# 保存修改后的文档
doc.save("modified_example.docx")
5. 格式化文本
python-docx
支持添加样式和格式,如加粗、斜体、字体大小等。
示例代码
from docx import Document
from docx.shared import Pt, RGBColor
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT
# 创建文档
doc = Document()
# 添加带格式的段落
paragraph = doc.add_paragraph()
run = paragraph.add_run("加粗文字")
run.bold = True
run = paragraph.add_run(",斜体文字")
run.italic = True
run = paragraph.add_run(",带颜色的文字")
run.font.color.rgb = RGBColor(255, 0, 0)
# 设置段落对齐
paragraph.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER
# 保存文档
doc.save("formatted.docx")
6. 处理表格
可以读取和写入 Word 文档中的表格。
读取表格
from docx import Document
# 打开文档
doc = Document("example.docx")
# 遍历表格
for table in doc.tables:
for row in table.rows:
for cell in row.cells:
print(cell.text)
写入表格
from docx import Document
# 创建文档
doc = Document()
# 添加表格
table = doc.add_table(rows=3, cols=3)
# 填充表格
for i in range(3):
for j in range(3):
table.cell(i, j).text = f"单元格 {i+1},{j+1}"
# 保存文档
doc.save("table_example.docx")
7. 处理 .doc
文件
python-docx
只能处理 .docx
文件。如果需要操作 .doc
文件,可以使用 pywin32
。
示例代码(Windows 环境)
import win32com.client
# 打开 Word 应用
word = win32com.client.Dispatch("Word.Application")
word.Visible = False
# 打开 .doc 文件
doc = word.Documents.Open("example.doc")
# 读取内容
for paragraph in doc.Paragraphs:
print(paragraph.Range.Text)
# 保存为 .docx 文件
doc.SaveAs("example_converted.docx", FileFormat=16) # 16 表示 .docx 格式
doc.Close()
word.Quit()
小结
python-docx
:强大、简单,适合处理.docx
文件。pywin32
:适合操作.doc
文件,但仅限 Windows 系统。- 对于大规模操作 Word 文件,建议使用
python-docx
。