在Python批次處理Word檔案的過程,可以使用docx這個模組,
例如收了20幾個word檔案,想要將word個別檔案的頁首和頁碼等資料去除後,
再來批次轉成pdf檔案編頁碼。
但這個模組只能處理Word的docx副檔名。
為了解決這個問題,只能先將Word舊版doc檔轉成docx檔,再做進一步的處理。
原始目檔資料夾如下,有word doc也有docx檔:
接下來就來用程式處理了:
import os
import re
import win32com.client as win32
# 設定目標資料夾
file_path = "d:\\temp\\test"
# 找出所有doc檔做成list
files = [x for x in os.listdir(file_path) if x.endswith(".doc")]
for file in files:
doc_file_path = os.path.join(file_path, file)
docx_file_path = os.path.join(file_path, os.path.splitext(file)[0] + ".docx")
print(f'正在處理{doc_file_path}')
print('----------------------')
word = win32.DispatchEx("Word.Application")
doc = word.Documents.Open(doc_file_path)
doc.SaveAs(docx_file_path, FileFormat=16) # FileFormat=16 是存成docx檔
doc.Close()
word.Quit()
# 移除doc檔案(非必要)
os.remove(doc_file_path)
print('所有doc檔轉換docx檔:已完成')
目標資料夾處理完的結果(第1, 2, 4個檔案已將doc轉成docx,並將原doc檔刪除):