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