基于python+pandoc实现html批量转word

 更新时间:2023年09月07日 10:44:55   作者:IceFloe_Rot  
pandoc是一个强大的文档格式转换工具,支持丰富的格式转换,并尽可能的保留原来的排版,号称文档格式转换的瑞士军刀,本文将给大家介绍一下使用python搭配pandoc实现html批量转word,感兴趣的朋友可以参考阅读下

使用python搭配pandoc实现html批量转word

好兄弟工作上有一批(5000+)html的文档需要转成word格式,他采用了两种实现方式,但都有些问题:

  • 直接改后缀有些会乱码 --> 有些会乱码,原因不知
  • 一个一个复制粘贴 --> 太费时间

找到我来帮忙,研究了下发现了pandoc这个神器,记录下实现的过程和踩的坑

pandoc简介

pandoc是一个强大的文档格式转换工具,支持丰富的格式转换,并尽可能的保留原来的排版,号称文档格式转换的瑞士军刀

体支持哪些格式转换可以查看官方文档(网页打开比较慢…):Pandoc - index

需要说明的是,pandoc要下载并安装到本地才可以使用,windows下是一个msi的安装包(mac版没试),安装之后会自动添加路径到环境变量里,可以直接使用cmd执行程序

使用cmd进行文档格式转换

一开始我是直接使用cmd指令进行格式转换,使用到的指令如下:

pandoc abc.html -o abc.docx

本地测试了一下可以正常转换,然后我就想写一个bat脚本批量执行,但是发现cmd指令读不出来中文文件名,即使改了cmd的编码为UTF-8也不行,查了好多资料都没找到解决方法,只好作罢,如果有大佬知道怎么读取中文文件名的还请不吝赐教

使用python搭配pandoc

没法使用bat脚本进行转换,又查了些资料,改为使用python中的os.system来代替执行cmd指令,具体代码如下:

注意:前提是必须要安装pandoc到系统

import os
def transfer_file(file_dir):
    count = 1
    for root, dirs, files in os.walk(file_dir):  # 获取当前文件夹的信息
        for file in files:  # 扫描所有文件
            if os.path.splitext(file)[1] == ".html":  # 提取出所有后缀名为.html的文件
                os.chdir(root) # os.chdir() 方法用于改变当前工作目录到指定的路径。
                print("正在转换第:" + str(count) + "个文件")
                count = count + 1
                print("转换开始:" + "pandoc " + file + " -o " + os.path.splitext(file)[0] + ".docx")
                # 使用os.system调用pandoc进行格式转化
                os.system("pandoc " + file + " -o " + os.path.splitext(file)[0] + ".docx")
                print("转换完成...")
if __name__ == "__main__":
    # os.path.realpath(__file__))是当前python文件所在的文件夹路径,如果想要转换指定文件夹,可以修改此路径
    transfer_file(os.path.dirname(os.path.realpath(__file__)))

可以实现批量转化

关于pypandoc

pandoc有一个python的包叫pypandoc,引入这个包直接调用pandoc.convert_file方法也可以实现文档格式转换,但是我没有试过这种方式需不需要安装pandoc,后面再摸索下

总结

pandoc是真的很强大,完美解决了乱码问题和排版问题,另外原html中的图片只要是在线图片也可以转到docx文档中,以后再研究一下其他打开方式,听说可以很方便的制作电子书,期待~

到此这篇关于基于python+pandoc实现html批量转word的文章就介绍到这了,更多相关python实现html批量转word内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 利用python 更新ssh 远程代码 操作远程服务器的实现代码

    利用python 更新ssh 远程代码 操作远程服务器的实现代码

    这篇文章主要介绍了利用python 更新ssh 远程代码 操作远程服务器的实现代码,需要的朋友可以参考下
    2018-02-02
  • Python自定义字符串输出格式的完全指南

    Python自定义字符串输出格式的完全指南

    在Python编程中,​​字符串格式化​​和​​输出控制​​是每个开发者必须掌握的核心技能,本文将深入探讨Python中各种字符串格式化技术,希望对大家有所帮助
    2025-10-10
  • python yolo混合文件xml和img整理/回显yolo标注文件方式

    python yolo混合文件xml和img整理/回显yolo标注文件方式

    本文介绍了如何根据XML文件中的标签顺序进行索引转换,并提供了一种自定义标签转格式的方法,以回显YOLO标注文件
    2026-01-01
  • pytorch安装及环境配置的完整过程

    pytorch安装及环境配置的完整过程

    这篇文章主要介绍了pytorch安装及环境配置的完整过程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • Python 删除整个文本中的空格,并实现按行显示

    Python 删除整个文本中的空格,并实现按行显示

    今天小编就为大家分享一篇Python 删除整个文本中的空格,并实现按行显示,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07
  • Python对图片进行二值化的实现方法

    Python对图片进行二值化的实现方法

    图像的二值化处理是将图像上的像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的只有黑和白的视觉效果,二值化是图像分割的一种最简单的方法,可以把灰度图像转换成二值图像,本文给大家介绍了Python对图片进行二值化的实现方法,需要的朋友可以参考下
    2025-10-10
  • Python NumPy库安装使用笔记

    Python NumPy库安装使用笔记

    这篇文章主要介绍了Python NumPy库安装使用笔记,本文讲解了NumPy的安装和基础使用,并对每一句代码都做了详细解释,需要的朋友可以参考下
    2015-05-05
  • 基于python socketserver框架全面解析

    基于python socketserver框架全面解析

    下面小编就为大家带来一篇基于python socketserver框架全面解析。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • Python folium的实用功能详解

    Python folium的实用功能详解

    这篇文章主要为大家详细介绍了Python中folium的使用功能,图层控制、指北针、folium添加js和css、经纬网格线(栅格线)等相关内容,感兴趣的小伙伴可以了解一下
    2022-12-12
  • Jupyter中markdown的操作方法

    Jupyter中markdown的操作方法

    Jupyter Notebook是基于网页的用于交互计算的应用程序,Jupyter notebook,作为Python广受欢迎的一款IDLE,其直观性、简易性、易于阅读等优点广受许多Python用户所推荐,这篇文章介绍Jupyter中markdown的操作,感兴趣的朋友一起看看吧
    2024-01-01

最新评论