從網上找到很多類似的文章,代碼都差不多,使用之後發現不好用,總是報錯。偶然間看到某位大神的代碼,是可以用的,也是我唯一找到的可以用的把doc轉化爲docx的代碼:
# encoding=utf-8
from win32com import client as wc
w = wc.gencache.EnsureDispatch('kwps.application')
doc = w.Documents.Open(r"E:\Python\project\pro1\lala.doc")
doc.SaveAs2(r"E:\Python\project\pro1\fafa.docx", 12)
注意:
1. 需要用到win32com這個包,不是Python內建的,需要通過python -m pip install pypiwin32安裝。
2. 要用gencache.EnsureDispatch這個函數纔行,網上其他大神用的方法不行。另外,如果你的電腦只安裝了WPS,函數參數就得是“kwps.application”,如果有Office,參數就不是這個了。
3. Open方法內的文件路徑得用絕對路徑,用相對路徑的話我反正報錯。
4. 另存爲不用SaveAs,要用SaveAs2,參數是絕對路徑。
5. SaveAs2的第二個參數是12,表示保存爲docx格式,我之前參考別的大神的代碼,用的是16,雖然看起來保存的確實是docx,但是當我通過Python-docx讀取這個文件的時候就出錯了,後來通過某位大神的評論才知道要用12,切記。