本方法通过LibreOffice插件进行实现,python的作用相当于自动启动进程,调用到LibreOffice的接口,将doc文件进行转换。
首先,需下载并安装LibreOffice,中文官方网站参考https://zh-cn.libreoffice.org
直接下载7.3.0版本长期支持版链接如下:
https://www.libreoffice.org/donate/dl/mac-aarch64/7.3.0/zh-CN/LibreOffice_7.3.0_MacOS_aarch64.dmg
若自行进入到官网进行下载,注意选择芯片,下图红框为M1芯片。版本一般选择最新长期支持版即可,本实例中采用7.3.0版本,可以顺利运行。
python在自己实际使用中是3.8版本,理论3.x都可兼容。
C+V后直接运行即可,运行后会提示输入文件夹路径和输出文件夹路径。以下代码已对文件类型进行了过滤,仅识别输入文件夹内".doc"后缀的文件。
python代码如下:
from ctypes.wintypes import PUINT import os import subprocess source = input('请输入需要转换的文件路径:') dest = input('请输入输出路径(若不存在该路径会报错,不会新建):') g = os.listdir(source) file_path = [f for f in g if f.endswith(('.doc'))] print(file_path) for i in file_path: file = (source + '/' + i ) print (file) output = subprocess.check_output(["/Applications/LibreOffice.app/Contents/MacOS/soffice","--headless","--convert-to","docx",file,"--outdir",dest]) print('success!')