python 實現docx與doc文件的互相轉換
因文件格式要求,需要將docx 與doc文件相互轉換,特尋找python代碼,與大傢共分享
from win32com import client #轉換doc為docx def doc2docx(fn): word = client.Dispatch("Word.Application") # 打開word應用程序 #for file in files: doc = word.Documents.Open(fn) #打開word文件 doc.SaveAs("{}x".format(fn), 12)#另存為後綴為".docx"的文件,其中參數12或16指docx文件 doc.Close() #關閉原來word文件 word.Quit() #轉換docx為doc def docx2doc(fn): word = client.Dispatch("Word.Application") # 打開word應用程序 #for file in files: doc = word.Documents.Open(fn) #打開word文件 doc.SaveAs("{}".format(fn[:-1]), 0)#另存為後綴為".docx"的文件,其中參數0指doc doc.Close() #關閉原來word文件 word.Quit() docx2doc(u"d:\\python\\1.docx")
如果想轉換為其他格式文件,需要在format文件名內修改,並用如下save as 參數
如docx轉換為pDf,用如下語句:
doc.SaveAs("{}.pdf".format(fn[:-5]), 17)
需要說明的是:
要安裝OFFICE,如果是使用金山WPS的,則還不能應用
補充:python批量將文件夾內所有doc轉成docx
doc轉docx函數
import os from win32com import client def doc_to_docx(path): if os.path.splitext(path)[1] == ".doc": word = client.Dispatch('Word.Application') doc = word.Documents.Open(path) # 目標路徑下的文件 doc.SaveAs(os.path.splitext(path)[0]+".docx", 16) # 轉化後路徑下的文件 doc.Close() word.Quit() path = ""#填寫文件夾路徑 doc_to_docx(path)
獲取文件夾下的所有文件的絕對路徑
import os def find_file(path, ext, file_list=[]): dir = os.listdir(path) for i in dir: i = os.path.join(path, i) if os.path.isdir(i): find_file(i, ext, file_list) else: if ext == os.path.splitext(i)[1]: file_list.append(i) return file_list dir_path = "" ext = ".doc" file_list = find_file(dir_path, ext)
源碼
import os from win32com import client def doc_to_docx(path): if os.path.splitext(path)[1] == ".doc": word = client.Dispatch('Word.Application') doc = word.Documents.Open(path) # 目標路徑下的文件 doc.SaveAs(os.path.splitext(path)[0]+".docx", 16) # 轉化後路徑下的文件 doc.Close() word.Quit() def find_file(path, ext, file_list=[]): dir = os.listdir(path) for i in dir: i = os.path.join(path, i) if os.path.isdir(i): find_file(i, ext, file_list) else: if ext == os.path.splitext(i)[1]: file_list.append(i) return file_list dir_path = "C:\Users\python"#批量轉換文件夾 ext = ".doc" file_list = find_file(dir_path, ext) for file in file_list: doc_to_docx(file)
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。如有錯誤或未考慮完全的地方,望不吝賜教。
推薦閱讀:
- Python實現對word文檔添加密碼去除密碼的示例代碼
- Python實現自動化處理Word文檔的方法詳解
- python讀取中文路徑時出錯(2種解決方案)
- Python八個自動化辦公的技巧
- Python辦公自動化從Excel中計算整理數據並寫入Word