windows
# pip install win32com 或者 python -m pip install pypiwin32
import os
import win32com
from win32com.client import Dispatch,constants
# 格式转换
def convertFormat( file_name):
w = Dispatch('Word.Application')
w.Visible = 0
w.DisplayAlerts=0
file_path = os.path.join(os.getcwd(),file_name)
doc = w.Documents.Open(file_path)
doc.SaveAs(os.path.join(os.getcwd(),file_name+"x"), FileFormat=12)
doc.Close()
w.Quit()
convertFormat("C:/Users/***/test_scripts/doc2docx/test.doc")
PS: 在 windows 下面,单个文件名的长度限制是 25,完整的路径长度(如 E:\abc\test.doc )限制是 260。比如:路径最后有一个字符串结束符 ‘\0’ 要占掉一个字符,所以完整路径实际限长是259。
linux
# sudo apt install libreoffice
def doc2docx(file):
#原地替换
if file.endswith('.doc'):
os.system(f"libreoffice --headless --convert-to docx {file}")
file = file + 'x'
return file