使用python搭配pandoc实现html批量转word
好兄弟工作上有一批(5000+)html的文档需要转成word格式,他采用了两种实现方式,但都有些问题:
直接改后缀有些会乱码 --> 有些会乱码,原因不知一个一个复制粘贴 --> 太费时间
找到我来帮忙,研究了下发现了pandoc这个神器,记录下实现的过程和踩的坑
pandoc简介
pandoc是一个强大的文档格式转换工具,支持丰富的格式转换,并尽可能的保留原来的排版,号称文档格式转换的瑞士军刀
体支持哪些格式转换可以查看官方文档(网页打开比较慢…):Pandoc - index
需要说明的是,pandoc要下载并安装到本地才可以使用,windows下是一个msi的安装包(mac版没试),安装之后会自动添加路径到环境变量里,可以直接使用cmd执行程序
使用cmd进行文档格式转换
一开始我是直接使用cmd指令进行格式转换,使用到的指令如下:
本地测试了一下可以正常转换,然后我就想写一个bat脚本批量执行,但是发现cmd指令读不出来中文文件名,即使改了cmd的编码为UTF-8也不行,查了好多资料都没找到解决方法,只好作罢,如果有大佬知道怎么读取中文文件名的还请不吝赐教
使用python搭配pandoc
没法使用bat脚本进行转换,又查了些资料,改为使用python中的os.system来代替执行cmd指令,具体代码如下:
注意:前提是必须要安装pandoc到系统
可以实现批量转化
关于pypandoc
pandoc有一个python的包叫pypandoc,引入这个包直接调用pandoc.convert_file方法也可以实现文档格式转换,但是我没有试过这种方式需不需要安装pandoc,后面再摸索下
总结
pandoc是真的很强大,完美解决了乱码问题和排版问题,另外原html中的图片只要是在线图片也可以转到docx文档中,以后再研究一下其他打开方式,听说可以很方便的制作电子书,期待~
到此这篇关于基于python+pandoc实现html批量转word的文章就介绍到这了,更多相关python实现html批量转word内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!