Python win32com模块:CompareDocuments
问题描述:
我试图以编程方式使用Word的内置比较函数在git中执行同一Word文档的两个版本的差异。Python win32com模块:CompareDocuments
我刚刚试图通过使用Python win32com模块获得代码的比较部分。这是我到目前为止有:
import win32com.client as win32
word = win32.gencache.EnsureDispatch('Word.Application')
word.CompareDocuments('old.docx', 'new.docx')
但是当我运行这段代码,我得到以下错误:
TypeError: The Python instance can not be converted to a COM object
我不知道很多关于一般win32com模块或COM对象,我滥用这个功能吗?有没有更好的模块来调用Word的比较函数?我不想只将Word文档保存为文本并区分文本,我更愿意使用Python。
谢谢。
答
必须传递到CompareDocuments()
的参数不是文件的路径(字符串),而不是Document
类类型。您必须首先打开Word文档,然后通过这些进入CompareDocuments()
:
import win32com.client as win32
word = win32.gencache.EnsureDispatch('Word.Application')
doc_old = word.Documents.Open('C:/abs/path/to/file/old.docx')
doc_new = word.Documents.Open('C:/abs/path/to/file/new.docx')
word.CompareDocuments(doc_old, doc_new)
请注意,您必须打开时,要不然win32com找不到它提供对文件的绝对路径。