Python自動化辦公 實現批量Word轉pdf
阿新 • • 發佈:2021-01-21
本期資源是Python自動化辦公的一個案例
Python在自動化辦公有很強大的應用,使用Python幾百條資料10秒即可搞定,這和Python專門適合處理重複性的工作不無關係,這裡作者給各位朋友介紹一個批量轉pdf的案例,不是太難
這裡需要匯入幾個模組
from win32com.client import Dispatch # 沒有的話輸入pip install pywin32命令 即可安裝 from os import walk import os
os是用於檔案處理常用的模組,至於Dispatch,它是提供了一個介面, win32提供了多種word轉換為其他檔案的介面,其中FileFormat=17是轉換為pdf格式.
之後轉換檔案邏輯也很簡單,首先需要提取出檔名,word檔案的字尾是doc或docx,那麼將字尾名替換為pdf即可轉換,這裡用到replace方法,即replace(‘docx’,‘pdf’).replace(‘doc’,‘pdf’)因為有可能字尾是doc,所以需要2次判斷。
值得注意的是,轉換的資料夾事先要存在,否則會報錯誤。
下面是專案的原始碼
from win32com.client import Dispatch # pip install pywin32 from os import walk import os wdFormatPDF = 17 # win32提供了多種word轉換為其他檔案的介面,其中FileFormat=17是轉換為pdfdef doc2pdf(input_file, input_file_name, output_dir): try: word = Dispatch('Word.Application') doc = word.Documents.Open(input_file) except Exception as e: print("word無法開啟, 發生如下錯誤:\n{}".format(e)) try: pdf_file_name = input_file_name.replace(".docx", ".pdf").replace(".doc", ".pdf") pdf_file = os.path.join(output_dir, pdf_file_name) doc.SaveAs(pdf_file, FileFormat=wdFormatPDF) doc.Close() word.Quit() print("成功轉換\"{}\"".format(input_file_name)) print() except Exception as e: print("檔案儲存失敗, 發生如下錯誤:\n{}".format(e)) if __name__ == "__main__": path_in=input("請輸入word資料夾的路徑(絕對路徑) 要保證存在 建議複製貼上") path_out=input("請輸入pdf資料夾的路徑(絕對路徑) 要保證存在 建議複製貼上") doc_files = [] directory = path_in# word資料夾 output_dir =path_out # pdf資料夾 for root, _, filenames in walk(directory): # 第2個返回值是dirs, 用不上使用_佔位 for file in filenames: if file.endswith(".doc") or file.endswith(".docx"): print("轉換{}中......".format(file)) doc2pdf(os.path.join(root, file), file, output_dir)
在這裡還是要推薦下我自己建的Python開發交流學習(qq)群:810735403,群裡都是學Python開發的,如果你正在
學習Python ,歡迎你加入,大家都是軟體開發黨,不定期分享乾貨(只有Python軟體開發相關的),包括我自己整理的一份
2021最新的Python進階資料和高階開發教程,歡迎進階中和想深入Python的小夥伴!