Как сделать консоль для текстового редактора

Недавно начал писать текстовый редактор. При нажатии на кнопку "run" запускается нужный пользователю файл.

os.startfile("Some_file.py")

Также есть лэйбл в который хотелось бы выводить ошибки (ну и прочий вывод). То есть выводить все данные в этот лэйбл.

from tkinter import *
import os
def start():
   os.startfile("some_file.py")
root=Tk()
Button1=Button(root,text="run", command=start)
Button1.pack()
Label1=Label(root,text="")
Label1.pack()
root.mainloop()

Но я абсолютно не знаю как это сделать.


Ответы (1 шт):

Автор решения: cyr oil

В питоне есть такая вещь как redirect_stdout

from contextlib import redirect_stdout
f=io.StringIO()
try:
    with redirect_stdout(f):
        exec(workplace.get(0.0,END))
        label1.configure(text=f.getvalue())
except Exception as e:
    em=traceback.format_exc()
    label1.configure(text=traceback.format_exc())
→ Ссылка