natsukage
89 天前
```python
import os
import win32com.client
def batch_convert_docx_to_doc(folder_path):
"""
批量将文件夹中的 .docx 文件转换为 .doc 格式
参数:
folder_path (str): 包含 .docx 文件的文件夹路径
"""
# 启动 Word 应用程序
print("正在启动 Word 应用程序...")
word_app = win32com.client.Dispatch("Word.Application")
word_app.Visible = False # 后台运行,不显示界面
try:
# 获取文件夹中的所有文件
files = os.listdir(folder_path)
docx_files = [f for f in files if f.lower().endswith('.docx')]
if not docx_files:
print("未找到需要转换的 .docx 文件")
return
print(f"找到 {len(docx_files)} 个 .docx 文件,开始转换...")
# 逐个转换文件
for filename in docx_files:
# 构建完整路径
docx_path = os.path.join(folder_path, filename)
doc_path = os.path.join(folder_path, filename[:-5] + ".doc")
# 检查目标文件是否已存在
if os.path.exists(doc_path):
print(f"跳过 {filename}(目标文件已存在)")
continue
try:
# 打开 .docx 文件
document = word_app.Documents.Open(docx_path)
# 保存为 .doc 格式( FileFormat=0 表示 Word 97-2003 文档格式)
document.SaveAs(doc_path, FileFormat=0)
# 关闭文档
document.Close()
print(f"✅ 转换完成: {filename} → {os.path.basename(doc_path)}")
except Exception as e:
print(f"❌ 转换失败: {filename} - {str(e)}")
finally:
# 确保关闭 Word 应用程序
word_app.Quit()
print("Word 应用程序已关闭")
def main():
"""主函数"""
# 设置要处理的文件夹路径
target_folder = os.path.join(os.getcwd(), "organized_files")
# 检查文件夹是否存在
if not os.path.exists(target_folder):
print(f"错误:文件夹 '{target_folder}' 不存在")
return
print(f"开始处理文件夹: {target_folder}")
# 执行批量转换
batch_convert_docx_to_doc(target_folder)
print("批量转换完成!")
if __name__ == "__main__":
main()
```
大概这种感觉吧(随便写的,有点丑陋,我让 cursor 给加了注释,不过核心思路应该很简单)
就是调用本地安装的 microsoft word 进行处理。