我为我的项目创建了一个简单的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)