工作上的需求要收各單位的資料,做成會議議程,
但各單位給的資料通常檔案很亂,而且給的word檔案,
有的是舊版,有的是新版。
雖然word檔案開啟後,可以存成pdf檔,
但有用過這種方法的網友就會知道,其實有點花時間,
尤其是要處理很多檔案的時候,太浪費時間了。
首先看一下目標資料夾的狀況:
接下來就來用程式處理了:
import os
import re
import win32com.client as win32
# 設定目標資料夾
path = 'D:\\temp\\test'
files = os.listdir(path)
for file in files:
# 將檔案名稱以regex分成2組,第1組是附件開頭的檔名,第2組是附檔名為doc或docx
pattern = '(附件\d+-\d_.+)(.docx?$)'
target = re.findall(pattern, file)
if target:
print(file)
# target[0][0]是目標檔案名稱,target[0][1]是doc或docx的附檔名
in_file = path + "\\" + target[0][0] + target[0][1]
# 處理完的檔案,附檔名改成pdf
out_file = path + "\\" + target[0][0] + ".pdf"
word = win32.DispatchEx("Word.Application")
doc = word.Documents.Open(in_file)
doc.SaveAs(out_file, FileFormat=17) # FileFormat=17 是存成pdf檔
doc.Close()
word.Quit()
print('-------------------------')
print('所有word檔轉換pdf檔:已完成')
執行結果:
附件1-1_侯茹康.docx
附件1-3_王冠恭.docx
附件10-1_陳彥雄.docx
附件10-2_陳婉明.docx
附件10-3_周與均.docx
附件10-4_徐淑萍.docx
附件10-5_王孟勳.docx
附件11-1_李政孝.docx
附件11-2_沈靜怡.docx
附件12-1_林怡靜.docx
附件12-2_林建來.docx
附件12-3_邰秀玲.docx
附件12-4_陳君謙.doc
附件12-6_孫維倫.doc
附件12-7_吳嘉茂.docx
附件12-8_陳秀美.doc
附件13-1_李孟珮.docx
附件13-2_袁惠文.docx
附件14-1_尹喬合.docx
附件2-1_陳淑惠.doc
附件3-1_翁映龍.docx
附件3-2_林國偉.docx
附件4-1_林柏宏.docx
附件5-1_周鈞雨.docx
附件5-2_方維哲.docx
附件5-3_吳孟任.docx
附件6-1_趙香福.doc
附件6-2_吳貞行.docx
附件7-1_於向誠.docx
附件7-3_林敬和.docx
附件8-1_程睿芬.doc
附件8-2_姜淑芬.doc
附件8-3_杜馥治.doc
附件9-1_梁紫廷.doc
附件9-2_黃淑苓.doc所有word檔轉換pdf檔:已完成
目標資料夾處理後的結果:
以上即完成本次目標。