当前位置: 代码网 > it编程>前端脚本>Python > Python实现文本文件TXT与Word文档互转的两大方案详解

Python实现文本文件TXT与Word文档互转的两大方案详解

2026年09月09日 Python 我要评论
在日常办公和开发工作中,将纯文本内容转换为 word 文档是一项常见需求。无论是生成报告、整理笔记,还是制作正式的文档材料,能够通过编程自动化完成这一过程都能显著提升效率。本文将介绍如何使用 pyth

在日常办公和开发工作中,将纯文本内容转换为 word 文档是一项常见需求。无论是生成报告、整理笔记,还是制作正式的文档材料,能够通过编程自动化完成这一过程都能显著提升效率。本文将介绍如何使用 python 配合第三方 word 处理库来实现文本文件到 word 文档的转换,并提供两种不同的实现路径供读者参考。

关于所使用的库

本文使用的是一个用于处理 word 文档的 python 第三方库。根据公开资料,它是一个独立的 word 文档处理工具,可以在不安装 microsoft word 的情况下创建、读取、写入、转换和打印 word 文档。

该库支持多种 word 文档格式(如 .doc、.docx),并提供了一套相对完整的 api,用于操作文档中的段落、表格、图片、页眉页脚等元素。

环境配置

开始之前,需要通过 pip 安装所需的库:

pip install spire.doc

安装完成后,在 python 脚本中导入所需模块:

from spire.doc import *
from spire.doc.common import *

方法一:直接加载 txt 并保存为 word

这是最简洁高效的实现方式。该库的 loadfromfile() 方法支持直接加载文本文件,内部会处理编码和段落解析,然后将内容转换为 word 文档结构。

from spire.doc import *
from spire.doc.common import *

# 创建 document 对象
document = document()

# 加载 txt 文件
document.loadfromfile("input.txt")

# 保存为 word 文档
document.savetofile("txttoword.docx", fileformat.docx2016)
document.close()

代码说明

  • loadfromfile("input.txt"):加载指定路径的文本文件。默认使用 utf-8 编码,如果需要指定其他编码格式,可以通过 loadfromfile(filename, encoding) 的重载方法传入编码参数。
  • savetofile("txttoword.docx", fileformat.docx2016):将文档保存为 .docx 格式。fileformat 枚举还支持 docdocxdocx2013docx2016 等多种版本。
  • close():关闭文档并释放资源。

这种方法适合大多数场景,尤其是当只需要将整个文本文件原样转换为 word 文档时。转换过程中,该库会自动将 txt 文件中的换行符映射为 word 文档中的段落分隔。

方法二:逐段读取并写入 word

如果需要更精细地控制文档结构——例如在转换过程中添加额外信息、对不同的段落应用不同的格式,或者需要在文本中穿插图片、表格等其他元素,则可以采用逐段读取并写入的方式。

from spire.doc import *
from spire.doc.common import *

# 读取文本文件
with open("input.txt", "r", encoding="utf-8") as f:
    lines = f.readlines()

# 创建 word 文档
doc = document()
section = doc.addsection()

for line in lines:
    line = line.strip()
    if not line:
        # 空行可以跳过,或者添加一个空段落
        continue
    paragraph = section.addparagraph()
    paragraph.appendtext(line)

doc.savetofile("文本转word.docx", fileformat.docx2016)
doc.close()

这种方式的灵活性更高。例如,可以在读取过程中判断行内容,将特定格式的行设置为标题样式:

for line in lines:
    line = line.strip()
    if not line:
        continue
    paragraph = section.addparagraph()
    text_range = paragraph.appendtext(line)
    if line.startswith("#"):  # 假设以 # 开头的行作为标题
        text_range.characterformat.bold = true
        text_range.characterformat.fontsize = 16
        paragraph.format.horizontalalignment = horizontalalignment.center

文档格式化能力

无论采用哪种方式,该库都允许在转换过程中或转换之后对文档进行格式化。

应用内置样式

该库支持 word 的内置样式,如标题样式:

paragraph = section.addparagraph()
text_range = paragraph.appendtext("第一章 概述")
paragraph.applystyle(builtinstyle.heading1)

自定义样式

也可以创建自定义样式并应用到段落:

# 创建段落样式
style = paragraphstyle(doc)
style.name = "自定义正文"
style.characterformat.fontname = "宋体"
style.characterformat.fontsize = 12
doc.styles.add(style)

# 应用样式
paragraph.applystyle("自定义正文")

文本修饰

通过 characterformat 可以设置字体、字号、颜色、加粗、斜体等属性:

text_range = paragraph.appendtext("这是加粗红色文字")
text_range.characterformat.bold = true
text_range.characterformat.textcolor = color.get_red()
text_range.characterformat.fontsize = 14

段落对齐与边距

段落对齐方式可以通过 format.horizontalalignment 设置:

paragraph.format.horizontalalignment = horizontalalignment.center

页面边距等页面设置可在 section 级别配置:

section.pagesetup.margins.all = 40  # 单位:磅

两种方案的适用场景对比

方案优点适用场景
直接加载转换代码简洁、性能好、保留原始段落结构完整文本文件的批量转换,无需额外处理
逐段读写灵活性高、可精细化控制格式和内容需要在转换过程中插入额外内容、条件格式化、动态生成文档

注意事项

  1. 编码问题:直接使用 loadfromfile("input.txt") 时默认使用 utf-8 编码。如果 txt 文件使用其他编码(如 gbk),应使用 loadfromfile("input.txt", encoding="gbk") 指定编码。
  2. 资源释放:处理完成后建议调用 close()dispose() 释放资源。
  3. 段落换行:直接加载方式会自动处理换行;逐段读写时需要注意空行的处理逻辑。
  4. 环境依赖:该库是独立的 word 处理工具,不需要本机安装 microsoft office。

结语

通过 python 第三方库提供的 api,可以便捷地实现 txt 到 word 的转换。直接加载方式用极少的代码即可完成转换任务,适合大多数批量处理场景;而逐段读写方式则为需要精细格式化控制的场景提供了更大的灵活性。开发者可以根据实际需求选择适合的实现方案。该库还支持插入图片、表格、页眉页脚等更复杂的功能,可根据具体项目需要进一步了解。

以上就是python实现文本文件txt与word文档互转的两大方案详解的详细内容,更多关于python文本文件转word的资料请关注代码网其它相关文章!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com