Виджет tkinter Text имеет метод search
, который можно использовать для поиска первого вхождения шаблона, начинающегося с индекса.
В вашем случае вы захотите найти первое "
после индекса 1.7
. Для этого вы можете запустить:
shell.search('"', '1.7')
Интегрировано в ваш код, который будет:
from tkinter import *
from tkinter.scrolledtext import ScrolledText
import datetime
def run(event=None):
print('File run ' + str(datetime.datetime.now()))
line = shell.get("1.0", END)
if 'print "' in line:
print (shell.get('1.7', shell.search('"', '1.7')))
root = Tk()
shell = ScrolledText(root, width=167, height=42)
shell.insert('1.0', 'print "print this" do not print this')
shell.grid(column=0, row=1)
shell.bind('<Button-1>', run)
root.mainloop()
Обратите внимание, что я привязал функцию run
к левой кнопке мыши в демонстрационных целях.