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學習群請在後臺回覆【入群】
萬水千山總是情,點個【在看】行不行
/今日留言主題/
隨便說一兩句吧~~