使用Python win32com

时间:2015-12-18 10:30:34

标签: python replace ms-word com win32com

我遇到了Python包win32com的一个大问题:我的问题是我想在Word文档中找到一些单词,并用斜体字表示。

假设我的文档中有“Hello”字样10次。我希望达到所有这10个单词“Hello”的出现次数,并用斜体字写出来。

关于如何做到这一点的任何想法?我一直在寻找几个月的解决方案,我找不到一个!

非常感谢!

1 个答案:

答案 0 :(得分:0)

一种解决方案是避免使用wdReplaceAll,而只需执行

import win32com.client
import os

word = win32com.client.Dispatch('Word.Application')
word.Documents.Open(os.path.abspath(r'.\your_document.docx'))
while word.Selection.Find.Execute('Hello'):
    word.Selection.Range.Font.Italic = True

在这里,我们不断搜索'Hello',并针对每个搜索结果使用匹配变为可用作为所选范围的事实。

请注意,这不包围搜索,因此如果在您的情况下这是必要的(如果您无法确保在文档的开头开始搜索,可能会这样做),您可能希望使用{{ 3}}(并注意避免潜在的无限循环)。