天天看點

Python将md批量轉為docx

這兩天寫畢業論文, 發現了一個可以将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/ 歡迎觀看, 歡迎投币, 歡迎彈幕, 歡迎轉發,,,