我遇到了一个问题,我在2周前在Stackoverflow上找到的Python脚本实际上无法理解这个问题,直到昨天才完美运行(完全没有变化!)
我有一个文档,我想找到一个单词列表,并用其他单词替换它们。这是我的代码:
import win32com.client
word = win32com.client.DispatchEx("Word.Application")
word.Visible = True
word.DisplayAlerts = False
word.Documents.Open(path)
FromTo = {"<#TITLE#>":"The title I want", "<#COMPANY#>":"My Company"}
for From in FromTo.keys():
word.Selection.Find.Text = From
word.Selection.Find.Replacement.Text = FromTo[From]
word.Selection.Find.Execute(Replace=2, Forward=True)
word.ActiveDocument.SaveAs(path)
问题是打开文档,正确选择要查找的文本,但是当代码进入行word.Selection.Find.Execute(Replace=2, Forward=True)
时没有任何反应。之后通常保存文档,我没有收到任何错误消息。
有人知道为什么这段代码不起作用?两周前相同的代码工作并且现在没有做任何事情,这很奇怪。
感谢您的帮助!
答案 0 :(得分:0)
我知道这是旧的,但我遇到了同样的问题,发现如果我将gen_py更改为site-packages \ win32com中的xxgen_py(基本上使其无法使用),我就不再有这个问题了。我不知道发生了什么事,但这是我能让fin.execute真正替换单词的唯一方法,而不仅仅是突出显示。
编辑:使用上一个回答中的其他替换方法为我工作,保留gen_py文件夹。