python 八 文件操作 读写.doc

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
### Python 处理 `.doc` 文件读写操作 虽然 `python-docx` 是用于处理 `.docx` 文件的强大工具,但它并不支持直接读写旧版的 `.doc` 文件。对于 `.doc` 文件的操作,通常需要借助第三方库如 `pywin32` 或者通过调用 Microsoft Word 的 COM 接口来实现。 以下是基于引用内容以及专业知识的一个解决方案: #### 使用 `pywin32` 和 COM 接口读写 `.doc` 文件 可以通过 `pywin32` 库与 Windows 上的 Microsoft Word 进行交互,从而完成对 `.doc` 文件读取和保存操作。下面是一个具体的代码示例[^4]: ```python import win32com.client as wc def read_doc_file(file_path): """读取 .doc 文件""" word = wc.Dispatch("Word.Application") # 启动 Word 应用程序 word.Visible = False # 设置为不可见模式 doc = word.Documents.Open(file_path) # 打开指定的 .doc 文件 content = "" for paragraph in doc.Paragraphs: # 遍历文档中的段落 content += paragraph.Range.Text + "\n" doc.Close(False) # 关闭文档而不保存更改 word.Quit() # 退出 Word 应用程序 return content.strip() def save_as_docx(input_path, output_path): """将 .doc 文件另存为 .docx 文件""" word = wc.Dispatch("Word.Application") doc = word.Documents.Open(input_path) doc.SaveAs(output_path, FileFormat=16) # 将文件转换并保存为 .docx 格式 (FileFormat=16 表示 .docx) doc.Close() word.Quit() # 示例调用 input_doc = r"C:\path\to\your\file.doc" # 输入的 .doc 文件路径 output_docx = r"C:\path\to\save\file.docx" # 输出的 .docx 文件路径 content = read_doc_file(input_doc) print(content) save_as_docx(input_doc, output_docx) ``` 上述代码展示了如何使用 `pywin32` 来读取 `.doc` 文件的内容,并将其转换成 `.docx` 格式的文件以便后续进一步处理。 --- #### 注意事项 - **依赖环境**:此方法仅适用于安装有 Microsoft Office 的 Windows 平台。 - **性能问题**:如果批量处理大量文件,则可能因启动多次 Word 实例而导致效率低下。因此建议优化脚本逻辑,比如保持单个 Word 实例运行以提高速度。 - **异常捕获**:实际应用中应加入错误捕捉机制(try-except),防止由于文件损坏或其他原因导致程序崩溃。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

十方来财

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值