如何使用子流程将终端命令输出到python gui文本区域?
我执行此语句是为了编译一个“.c”文件。我在后端得到了输出 但是如何在python文本区域中获得C程序的输出(我使用的是tkinter,python 2.7)如何使用子流程将终端命令输出到python gui文本区域?,python,python-2.7,tkinter,subprocess,Python,Python 2.7,Tkinter,Subprocess,我执行此语句是为了编译一个“.c”文件。我在后端得到了输出 但是如何在python文本区域中获得C程序的输出(我使用的是tkinter,python 2.7) 另一个问题是,我无法扫描输入数据,但只能编译不接受输入数据的程序。您可以使用subprocess.Popen并将标准输出重定向到管道,然后在设置文本区域调用时测试简单的读取标准输出,例如complie.stdout.readlines() import subprocess subprocess.call('gcc a.c',
另一个问题是,我无法扫描输入数据,但只能编译不接受输入数据的程序。您可以使用subprocess.Popen并将标准输出重定向到管道,然后在设置文本区域调用时测试简单的读取标准输出,例如
complie.stdout.readlines()
import subprocess
subprocess.call('gcc a.c', shell=True)
subprocess.call('./a.out', shell=True)
您可以将complie.stdout.readlines()
放在文本区域集合调用中,而不是打印
示例代码:
import subprocess
complie = subprocess.Popen('gcc a.c', stdout=subprocess.PIPE,shell=True)
runprog = subprocess.Popen('./a.out', stdout=subprocess.PIPE,shell=True)
print (complie.stdout.readlines())
print (runprog.stdout.readlines())
希望这有帮助
import subprocess
from tkinter import *
#Example on Windows
root = Tk()
T = Text(root, height=2, width=200)
T.pack()
complie = subprocess.Popen('ping google.com', stdout=subprocess.PIPE,stdin=subprocess.PIPE ,shell=True)
complie.wait()
outcome = complie.stdout.readlines()
print(outcome)
T.insert(END, outcome)
mainloop()