python pypandoc将html批量转换为word文件
今天遇到一个需求,需要把自己以往写的文章转为word来保存。文章是html格式的,以前使用过html2text库来完成html格式到txt文本文件的格式转换,但是转换后会丢失图片和文本格式。搜索一番,pypandoc 库可以完美的解决问题,还可以转换为电子书格式,实现看书自由。
pypandoc 是一个支持多种文件格式转换的 Python 库,支持非常多的格式,pypandoc主要有3个函数,批量转换文件使用函数convent_file()。
1.convert():官方建议不用,容易产生歧义;
2.convent_file():接收文件参数来进行转换;
3.convenr_text():接收文本参数来进行转换。
在ipython中测试“eNSP模拟实验-ARP.html”,输出eNSP模拟实验-ARP.docx文件格式正常,而且图片很完好,也不需要再次编排,测试成功。
那么接下里就是转到目录下的所有html文件,然后逐一转换为docx文件了。所幸的是,以前笔者做过类似的脚本来完成特定文件查找和机器学习分析简书文章,拿来即用。下面是两个函数,is_file_match判断模式匹配,find_specific_files根据模式找到目录下的所有文件。
接下里就是主函数部分,分为四个部分,完整的代码托管在:python/html2word.py at main · laufei90/python (github.com) 。
1、将目标文件夹整体备份,防止数据丢失;
2、匹配目录下的所有html文件,包含所有子目录;
3、逐一转换html文件为docx文件,笔者的目录下有385篇html文件,转换花了10多分钟才完成;
4、删除目录下的所有原html文件,目录下全部是word文件了。