iT邦幫忙

0

Python學習筆記: 批次將word舊版 doc 檔轉換成 docx 檔

  • 分享至 

  • xImage
  •  

本文同步發表於小弟自架網站(非釣魚也無廣告,純分享):

微確幸資訊站

在Python批次處理Word檔案的過程,可以使用docx這個模組,

例如收了20幾個word檔案,想要將word個別檔案的頁首和頁碼等資料去除後,
再來批次轉成pdf檔案編頁碼。

但這個模組只能處理Word的docx副檔名。

為了解決這個問題,只能先將Word舊版doc檔轉成docx檔,再做進一步的處理。

原始目檔資料夾如下,有word doc也有docx檔:
https://ithelp.ithome.com.tw/upload/images/20230529/20122335VaSnhWSOdI.jpg

接下來就來用程式處理了:

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檔:已完成')

https://ithelp.ithome.com.tw/upload/images/20230529/20122335HrfE7mUsTP.jpg

目標資料夾處理完的結果(第1, 2, 4個檔案已將doc轉成docx,並將原doc檔刪除):
https://ithelp.ithome.com.tw/upload/images/20230529/20122335bpxgQhrwqX.jpg


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言