Python Tkinter - 带路径文件的sub.Popen

时间:2016-05-13 15:57:42

标签: python tkinter

我为我的项目创建了一个简单的gui,首先我显示未编辑的文本,然后我想显示下面的另一个文本。基本上我创建了两个文本文件和一个按钮。如何使用sub.Popen在第二个文本文件中显示我的脚本输出。

class App(object):
    def __init__(self, master):
        frame = Frame(master)
        frame.pack()
        self.text = Text()
        self.text.pack()
        self.text1 = Text()
        self.text1.pack()
        menu = Menu(master)
        root.config(menu=menu)
        # file menu
        filemenu = Menu(menu, tearoff=0)
        menu.add_cascade(label="Browse Text File", menu=filemenu)
        filemenu.add_command(label="New")
        filemenu.add_command(label="Open", command=self.file_open)
        filemenu.add_command(label="Save", command=self.file_save)        
        filemenu.add_separator()
        filemenu.add_command(label="Exit", command=self.do_exit)

    def file_open(self):
        """open a file to read"""
        # optional initial directory (default is current directory)
        initial_dir = "C:\Temp"
        # the filetype mask (default is all files)
        mask = \
        [("Text and Python files","*.txt"), 
        ("HTML files","*.htm"), 
        ("All files","*.*")]        
        fin = askopenfile(initialdir=initial_dir, filetypes=mask, mode='r')
        text = fin.read()
        if text != None:
            self.text.delete(0.0, END)
            self.text.insert(END,text)
        p = sub.Popen('./x4.py',stdout=sub.PIPE,stderr=sub.PIPE)
        output, errors = p.communicate()
        if text != None:
            self.text1.delete(0.0, END)
            self.text1.insert(END,output)

这是您可以看到的代码:

p = sub.Popen('./x4.py',stdout=sub.PIPE,stderr=sub.PIPE)

通常我的脚本采用sys.argv文本名称。我想给我的脚本文本文件来自file_open。这样的事情:

 p = sub.Popen('./x4.py text(browsed via file open)',stdout=sub.PIPE,stderr=sub.PIPE)

0 个答案:

没有答案