当前位置:  首页>> 技术小册>> Python与办公-玩转Word

由于python-docx不支持doc类型的文档,所以如果要用python-docx处理doc文档的话就要先想办法将doc文档转换成docx文档。不久前我们已经学了怎么使用win32com将xls转换成xlsx,既然win32com也支持Word,转换思路还是很清晰的,只要使用win32com打开一个doc再将其保存为docx即可,代码如下:

  1. import os
  2. from win32com import client
  3. def doc_to_docx(path):
  4. print("路径:{}".format(path))
  5. if not os.path.isabs(path):
  6. printf"不是绝对路径"
  7. return
  8. if not os.path.exists(path):
  9. print"文件不存在"
  10. return
  11. if os.path.splitext(path)[1] != ".doc":
  12. print"文件类型不对"
  13. return
  14. app = client.Dispatch('Word.Application')
  15. app.DisplayAlerts = False
  16. document = app.Documents.Open(path)
  17. document.SaveAs(os.path.splitext(path)[0] + ".docx",12)
  18. document.Close()
  19. app.Quit()
  20. if _ _name_ _ == '_ _main_ _':
  21. file = r"E:\xxx\test.doc"
  22. doc_to_docx( file)

代码中client.Dispatch(‘Word.Application’)是打开一个Word应用,然后使用Open再SaveAs这两个操作,调用SaveAs()保存文档的时候要把格式类型设置为12,12代表docx文档类型,不写也没关系,因为它在保存时默认类型就是docx。再啰嗦一遍,win32com只适合在安装有Office或WPS的Windows电脑上运行,最后还要记得关闭文档和应用,避免造成内存泄露。