我编写了以下代码在python中创建一个gui然后使用lambda我正在调用另一个文件。 此代码显示一些缩进问题。 roshan / pre.sh 是shell脚本的路径,我在这里调用另一个python文件。 我想创建这样的多个按钮,并使用我将调用的函数 不同的shell脚本。
应该有5个按钮(名为GRAPH1,GRAPH2,GRAPH3,GRAPH4,GRAPH5),并且在每个按钮上单击我希望加载另一个文件,我将放置我的图形。
例如,当我点击GRAPH1按钮时,我将命名为image1.py的另一个文件将加载并显示图形。
#!/usr/bin/python
import Tkinter, subprocess
class simpleapp_tk(Tkinter.Tk):
def __init__(self,parent):
Tkinter.Tk.__init__(self,parent)
self.parent = parent
self.initialize()
def initialize(self):
self.grid()
clusterB = Tkinter.Button(self, text ="preprocessing",width=13,font = "Georgia 10 bold")
clusterB.grid(row=5,sticky=Tkinter.W,padx=3)
clusterB.config(command = lambda:clusters())
def clusters():
process = subprocess.Popen(["roshan/pre.sh"],shell=False,
stdout=subprocess.PIPE,stderr=subprocess.STDOUT)
while True:
out = process.stdout.readline()
if out == '' and process.poll() is not None:
break
print out
return
if __name__ == "__main__":
app = simpleapp_tk(None)
app.title('Results and Graphs')
app.mainloop()
答案 0 :(得分:2)
除了使用shell打开python文件之外,如果它在同一目录中并且像模块一样使用它,它总是可以导入它。
import image1
thing = image1.function_in_image1()
您也可以选择使用操作系统直接运行它。
import os
os.system(r"C:\path\to\image1.py")
在您的示例中,我发现了缩进问题。改变这个:
def clusters():
process = subprocess.Popen(["roshan/pre.sh"],shell=False,
stdout=subprocess.PIPE,stderr=subprocess.STDOUT)
while True:
out = process.stdout.readline()
if out == '' and process.poll() is not None:
break
print out
return
到此:
def clusters():
process = subprocess.Popen(["roshan/pre.sh"],shell=False,
stdout=subprocess.PIPE,stderr=subprocess.STDOUT)
while True:
out = process.stdout.readline()
if out == '' and process.poll() is not None:
break
print out
return