Самый простой способ проверить, находится ли подстрока в строке, - использовать in
-оператор (по крайней мере, в Python3 .5). Рассмотрим следующее:
text = 'session.findById("wnd[0]").sendVKey 4'
if '.sendVKey' in text:
text = '(...)' + text
text
Если вы запустите его в терминале, вывод будет:
'(...)session.findById("wnd[0]").sendVKey 4'
Итак, как вы можете видеть, скрипт даже добавляет уже некоторый текст перед текстовой строкой. Если вы скажете не text = '(...)' + text
, а text = '(...)\n' + text
, (...)
появится в строке над фактическим текстом. Если вы поместите приведенный выше образец кода в for l oop, повторяя все текстовые строки, я думаю, что этот подход может решить вашу проблему.
Edit:
You сначала нужно разбить текст на строки перед повторением строк. Я думаю, это именно то, что вам нужно:
text = """session.findById("wnd[0]").sendVKey 4
session.findById("wnd[1]/tbar[0]/btn[17]").press
session.findById("wnd[1]/usr/tabsG_SELONETABSTRIP/tabpTAB001/ssubSUBSCR_PRESEL:SAPLSDH4:0220
session.findById("wnd[1]").sendVKey 0
session.findById("wnd[1]/usr/lbl[1,1]").setFocus
session.findById("wnd[1]").sendVKey 33"""
query_text = ".sendVKey"
addition = "(...) "
def indicate_lines(text, query_text, indication):
result = ''
text = text.splitlines()
for line in text:
if query_text in line:
result = result + indication + line + "\n"
else:
result = result + line + "\n"
return result
result = indicate_lines(text, query_text, addition)
print(result)
Результат будет:
(...) session.findById("wnd[0]").sendVKey 4
session.findById("wnd[1]/tbar[0]/btn[17]").press
session.findById("wnd[1]/usr/tabsG_SELONETABSTRIP/tabpTAB001
/ssubSUBSCR_PRESEL:SAPLSDH4:0220
(...) session.findById("wnd[1]").sendVKey 0
session.findById("wnd[1]/usr/lbl[1,1]").setFocus
(...) session.findById("wnd[1]").sendVKey 33
Обратите внимание, что я ожидаю, что регулярное выражение будет работать быстрее, если вы хотите иметь масштабируемый решение (потому что for
-циклы сравнительно медленные в Python). Но для большинства приложений среднего размера это подойдет.