Python将md批量转为docx

作者: zhaoolee | 来源:发表于2018-05-10 15:28 被阅读2119次

    这两天写毕业论文, 发现了一个可以将markdown快速转为word格式的小工具pandoc, 非常好用, 比如我有一个名为毕业论文.md的文件, 我只需在命令行运行

    pandoc 毕业论文.md -o 毕业论文.docx
    

    即可根据md文件生成新的docx文件!

    pandoc支持相互转换的格式, 多的惊人!
    pandoc

    Pandoc主站链接

    安装包下载地址

    https://github.com/jgm/pandoc/releases/tag/2.2

    使用技巧:

    • 由于word确实很难用, 我们可以用md格式书写, 然后转换成docx
    • 懒是第一生产力, pandoc可以在命令行运行, 所以, 我们可以配合python脚本将md格式批量转换为docx
    • 这是我写的一个简易脚本
    import os  
    
    def auto_md_to_docx(file_dir):
        # 获取当前目录下所有的md文件的路径信息
        all_whole_path_files = []
        for root, dirs, files in os.walk(file_dir):
            for file in files:
                try:
                    if file[-3:] == ".md":
                        file_info = [root+'/', file]
                        all_whole_path_files.append(file_info)
                except Exception as e:
                    print(e)
        print("==>", all_whole_path_files)
    
        # 将md依次转换为pandoc
        for file_info in all_whole_path_files:
            md_file_path_file = file_info[0] + file_info[1]
            docx_file_name = file_info[1][:-3] + '.docx'
            docx_file_path_file = file_info[0] + docx_file_name
            new_command = 'pandoc ' + md_file_path_file + ' -o ' + docx_file_path_file
    
            try:
                result = os.popen(new_command).readlines()
                if len(result) == 0:
                    print(md_file_path_file, "已经转换为", docx_file_path_file)
            except Exception as e:
                print(e)
    
    def main():
        auto_md_to_docx('.')
    
    if __name__ == '__main__':
        main()
    
    
    
    运行效果
    最终结果

    windows用户安装pandoc

    1.下载32位免安装版软件包

    下载地址: https://github.com/jgm/pandoc/releases/tag/2.2.1

    2.将软件包放入c盘, 并解压

    3.获取pandoc.exe的绝对路径

    4. 将pandoc.exe的绝对路径放入环境变量

    • 值得一提的是, 我这里用的md测试文件, 都是从我的简书后台打包下载的, 也就是本地是不存在图片的, 而pandoc会自动帮我们把图片下载到本地, 然后保存到新生成的doc中.
    • 只要将我的脚本稍加修改, 就可以按照上面的网状图, 进行任意两种格式的互转(比如word转pdf), 有兴趣的小伙伴可以自己动手折腾一下

    另外, 小白福利, 我把这篇博客做成了视频 https://www.bilibili.com/video/av24136955/
    欢迎观看, 欢迎投币, 欢迎弹幕, 欢迎转发,,,

    相关文章

      网友评论

      • 扶桑雪:mark
        zhaoolee:@扶桑雪 nice
      • ac0920df5710:另外,这么高清的代码截图,是啥工具哇
      • ac0920df5710:没有mac版本么,还是我没看到😂
      • 蹦蹦跶跶的起床啊:天,同样是刚写完论文,你怎么就这么优秀~可否分享下大佬自学经验:smile:
      • 孤伐重洋:用typora编辑器可以直接导出word文件啊!
        孤伐重洋:@崔冬Alex 它是后台自动运行,不用python。好像我安装起来也没有你写的那么复杂😂
        9e48342bb31b:@孤伐重洋 直接导出的前提就是安装pandoc...
      • Golden_humble:不错不错
      • 知识学者:还以为,你早就毕业了:joy:
        zhaoolee:@东风冷雪 写完论文就毕业了:relieved:
      • M4K0:👍
      • chdo002:有PDF 吗
        chdo002:@chdo002 看到了
        PDF

        via pdflatex, xelatex, lualatex, pdfroff, wkhtml2pdf, prince, or weasyprint.
      • 繁华如梦_a699:好东西,可以装在服务器里做成文档格式转换api,POST文件内容,返回转换后文件的下载链接。
        zhaoolee:@繁华如梦_a699 可以的
      • 笑忘书言丶:同样喜欢md,转换为word确实可以
        zhaoolee:@笑忘书言 抛弃word,拥入markdown的怀抱

      本文标题:Python将md批量转为docx

      本文链接:https://www.haomeiwen.com/subject/vhbzrftx.html