我正在尝试使用Python中的find和replace替换为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()
答案 0 :(得分: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
方法。
答案 1 :(得分:0)
所以只需使用
find.Execute(Replace=2, Forward=True)