Я пытаюсь использовать find и заменить на win32com.client в Python, чтобы заменить 2 строки в текстовом документе. basiclaly В моем тестовом документе есть «Имя» & «Фамилия», и из этого я создаю новый документ, который заменяет их «Джон» & «Смит», но только первое имя изменяется. Я новичок в 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()
это может быть, что Заменить = 1 заменить только первое вхождение? – oleg
msdn утверждает, что replace указывает, сколько изменений должно быть выполнено: один, все или ни один. Я попробовал Replace = 2, и это сделало трюк. Благодаря!! – KFP