从python控制台输出

时间:2012-02-06 10:54:14

标签: python shell tkinter stdout

我有以下问题,我在不同的文件中有单独的python函数。我需要它时打电话给我。

目前,我正在尝试用tkinter创建gui,我需要显示我调用的函数的输出。因为我想读取python控制台生成的内容我试图使用子进程,但它没有用,我想我必须读取stdout然后将它传递给tkinter列表框,但我尝试的方法不起作用。

from Tkinter import *
import ConfigParser, sys
import subprocess as sub
from my_update import *
from  mac_generator import *



class testing:

    def __init__(self, parent):
        self.parent=parent
        status_file = "status.ini"
        status = ConfigParser.ConfigParser()
        status.read(status_file)
        self.mac_last = status.get('status', 'mac_last')
        self.parent=parent
        Button(parent, text="Upgrade", command=self.upgradeproc).pack(side=BOTTOM, padx=10, pady=10)
        self.ff=Frame(self.parent, bd=1, relief=SUNKEN)
        Label(self.ff, text="LAST MAC: " + self.mac_last, justify=LEFT, anchor=W, width=28).pack()
        self.ff.pack(side=TOP, pady=15)


    def upgradeproc(self):
        list = Listbox(root, width=50, height=30)
        list.pack()
        proc = sub.Popen(testgen(), stdout=sub.PIPE)
        for line in iter(proc.stdout.readline, ''):
            list.insert(END, line)



if __name__ == '__main__':
    root = Tk()
    root.resizable(width=FALSE, height=FALSE)
    root.geometry("350x350")
    root.title('Test')
    testing(root)
    root.mainloop()

0 个答案:

没有答案