import subprocess import os import logging # 获取日志记录器 logger = logging.getLogger(__name__) def doc2docx(input_path, output_dir=None): logger.info("开始将doc转成docx") # 如果未指定输出目录,则使用输入文件所在目录 if output_dir is None: output_dir = os.path.dirname(input_path) # 构建输出文件路径 output_file = os.path.join( output_dir, os.path.splitext(os.path.basename(input_path))[0] + ".docx" ) # LibreOffice 命令行工具 libreoffice_cmd = "soffice" # 构建转换命令 command = [ libreoffice_cmd, "--headless", # 无界面模式 "--convert-to", "docx", # 转换为 docx "--outdir", output_dir, # 输出目录 input_path, # 输入文件 ] # 执行命令 try: subprocess.run(command, check=True) print(f"转换成功: {output_file}") return output_file except subprocess.CalledProcessError as e: print(f"转换失败: {e}") return None if __name__ == "__main__": input_path = "./南方电网公司“抢修、投诉、舆情”三工单联动监测日报(3月6日).doc" # 替换为你的 .doc 文件路径 doc2docx(input_path)