本文同步发表于小弟自架网站(非钓鱼也无广告,纯分享):
微确幸资讯站
在Python批次处理Word档案的过程,可以使用docx这个模组,
例如收了20几个word档案,想要将word个别档案的页首和页码等资料去除后,
再来批次转成pdf档案编页码。
但这个模组只能处理Word的docx副档名。
为了解决这个问题,只能先将Word旧版doc档转成docx档,再做进一步的处理。
原始目档资料夹如下,有word doc也有docx档:
接下来就来用程式处理了:
import osimport reimport win32com.client as win32# 设定目标资料夹file_path = "d:\\temp\\test"# 找出所有doc档做成listfiles = [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档删除):