0

我正在尝试在 Python 中使用查找并替换为 win32com.client 来替换 word 文档中的 2 个字符串。基本上我的测试文档有“名字”和“姓氏”,我正在创建一个新文档,用“约翰”和“史密斯”替换这两个文档,但只有名字被更改。我是 python 新手,所以我确信我做错了很明显。我已经有一段时间了,所以任何帮助将不胜感激。

import win32com.client

word = win32com.client.DispatchEx("Word.Application")
word.Visible = True
word.DisplayAlerts = 0
word.Documents.Open("C:\TEMP\Test.docx")

def replace(find_str, replace_str):
    find = word.Selection.Find
    find.Text = find_str
    find.Replacement.Text = replace_str
    find.Execute(Replace=1, Forward=True)

replace('First Name', 'John')

replace('Last Name', 'Smith')

word.ActiveDocument.SaveAs('C:\TEMP\Test2.docx')
word.Quit()    
4

2 回答 2

0

你可以

o = open("C:\TEMP\Test.docx","a") #open for append
for line in open("file"):
   line = line.replace("someword","newword") # set your own names here
   o.write(line + "\n") 
o.close()

所以不需要重新定义replace方法。

于 2013-05-17T14:35:10.723 回答
0

所以只是使用

find.Execute(Replace=2, Forward=True)
于 2013-05-17T15:04:54.003 回答