1. 程式人生 > 其它 >python-docx無法處理 “doc格式” 檔案,於是我這樣做......

python-docx無法處理 “doc格式” 檔案,於是我這樣做......

技術標籤:pythonhttpscsscsvanaconda

點選上方“Python爬蟲與資料探勘”,進行關注

回覆“書籍”即可獲贈Python從入門到進階共10本電子書

故園東望路漫漫,雙袖龍鍾淚不幹。

問題引入

目前的日常工作中,見的最多的還是對Excel檔案和 Word檔案的處理。對於Excel檔案,如果出現xls、xlsx、xlsm混合檔案應該怎麼處理?對於Word檔案,出現doc和docx的混合檔案,又該怎麼處理。

你可能會用VBA,但是不得不說,批量操作這些檔案,還是要學Python,操作真的很簡單。

為了增強文章的可讀性,我們分2篇文章講述這些問題。今天,我們講述的是如何將doc檔案 轉換為 docx檔案。


學了黃同學的原創《Python自動化辦公文件》後,你可能知道:我們常用python-docx來處理Word檔案。但是,python-docx只能處理“.docx”的Word檔案。因此,咱們需要批量將“.doc”檔案,批量轉換為“.docx”檔案後,再進行二次處理。

近日,就有一個女同事讓我批量處理一下Word中的內容。這還是頭一次處理這樣的問題,為了解決這個問題,我只能:① 批量將doc檔案,轉換為docx檔案;② 使用python-docx庫,批量處理docx檔案。

將doc檔案,轉換為docx檔案

python-docx庫,如何處理docx檔案,我們的文件中已經為大家進行了詳細的解釋。今天黃同學就教大家寫一段程式碼,實現這個doc檔案轉換為docx檔案

操作。

1)安裝win32com庫

這裡需要做一個說明,如果採用以下方式,無法安裝的話。

pipinstallwin32com

那麼,就採用下面這個方法進行安裝。

python-mpipinstallpypiwin32

2)win32com庫相關語法的說明

這裡我們沒有什麼太高深的程式碼,只是有些程式碼怕大家看不懂,因此給大家做一個說明。

#呼叫word程式
WordApp=win32com.client.Dispatch("Word.Application")

#後臺執行,不顯示,不警告
WordApp.Visible=0
WordApp.DisplayAlerts=0

3)完整程式碼

這裡我們採用“面向過程”的方式,去寫這個程式碼,這樣會讓程式碼可讀性更強。

importos
importtime
importwin32com
fromwin32com.clientimportDispatch

defdoc_to_docx(path):
w=win32com.client.Dispatch('Word.Application')
w.Visible=0
w.DisplayAlerts=0
doc=w.Documents.Open(path)
#這裡必須要絕對地址,保持和doc路徑一致
newpath=allpath+'\\轉換後的文件.docx'
time.sleep(3)#暫停3s,否則會出現-2147352567,錯誤
doc.SaveAs(newpath,12,False,"",True,"",False,False,False,False)
#doc.Close()開啟則會刪掉原來的doc
w.Quit()#退出
returnnewpath
allpath=os.getcwd()
print(allpath)
doc_to_docx(allpath+'\\轉換前的文件.doc')

最終效果:

-------------------End-------------------

往期精彩文章推薦:

歡迎大家點贊,留言,轉發,轉載,感謝大家的相伴與支援

想加入Python學習群請在後臺回覆【入群

萬水千山總是情,點個【在看】行不行

/今日留言主題/

隨便說一兩句吧~~