Mostrar resultados da linha de comando no widget de texto Tkinter
Eu quero a saída de um script Python em um widget de texto Tkinter em vez de na linha de comando. Eu tenho esse script dehttps://stackoverflow.com/a/665598/3524043:
from Tkinter import *
import subprocess as sub
p = sub.Popen('./Scripts/Speedtest.py',stdout=sub.PIPE,stderr=sub.PIPE, shell=True)
output, errors = p.communicate()
root = Tk()
text = Text(root)
text.pack()
text.insert(END, output)
root.mainloop()
eu já adicioneishell=true
no subprocesso, porque eu tinha umOSError: [Errno 13] Permission denied
.
Quando executo o programa, há apenas um widget de texto vazio.
Editado com uma solução melhor:
Importe o script e chame os objetos
from Tkinter import *
from Speedtest import ping_speed, download_speed, upload_speed
root = Tk()
text = Text(root)
text.insert(INSERT, ping_speed)
text.insert(END, download_speed)
text.pack()
mainloop()