Python:通过pywin32模块批量将rtf或docx另存为doc格式

Python 中 pywin32 模块可以调用 Windows API,可以在 windows 系统下打开 word excel 等应用,然后编辑保存另存为等操作,可以用来批量编辑文件。

环境是 Python3,先安装 pywin32 包:pip install pywin32,然后导入 pywin32 包中的 win32com 模块。

例如现在文件夹 D:\develop\temp\original 有如下文件:

通过以下代码,将其转成成 doc 并保存到文件夹 D:\develop\temp\destination 下。

#!/usr/bin/python3

import os  # 用于获取目标文件所在路径
from win32com import client as wc  # 导入模块

path = "D:\\develop\\temp\\original\\"  # 待处理文件夹
dest_path = "D:\\develop\\temp\\destination\\"

word = wc.Dispatch("kwps.application")  # 打开wps应用程序

for file in os.listdir(path):
    (file_path, temp_file_name) = os.path.split(file)
    (short_name, extension) = os.path.splitext(temp_file_name)
    print(short_name)
    doc = word.Documents.Open(path + file)
    doc.SaveAs(dest_path + short_name + ".doc", 0)  # 另存为后缀为".doc"的文件,其中参数0指doc文件
    doc.Close()
word.Quit()

上面是用 wc.Dispatch("kwps.application") 打开 wps 应用,如果要打开 word 则是 wc.Dispatch('word.application'),向Dispatch( ) 方法中传入不同的参数,即可调用不同的应用。

上面 SaveAs( ) 方法中第二个参数 0 是指 doc 文件,不同的文件对应的值也不同,可以参考这篇文章

修改上面启动的应用和需要另存为的文件后缀,可以实现许多文件的互转。

 

参考文档:

pywin32 操作 wps https://blog.csdn.net/qq_41703291/article/details/88411587

SaveAs 方法中第二个参数值 https://blog.csdn.net/ynyn2013/article/details/49120731

posted @ 2019-12-30 20:29  colin220  阅读(2478)  评论(0编辑  收藏  举报