从Python GUI运行shell脚本

时间:2014-07-30 04:20:50

标签: python

我有一个GUI,它会在按下按钮时执行某些功能。

现在我想在GUI中创建一个按钮,它将在后台调用并运行shell脚本。

我怎样才能实现这一目标?

4 个答案:

答案 0 :(得分:3)

不确定您的问题是关于如何在Python中调用shell脚本,或者如何在GUI中创建按钮。如果是前者,我上面的评论(建议对subprocess.Popen进行一些研究)就是解决方案。否则:

# assuming Python3
import tkinter as tk
import subprocess as sub

WINDOW_SIZE = "600x400"

root = tk.Tk()
root.geometry(WINDOW_SIZE)

tk.Button(root, text="Push me!", command=lambda: sub.call('path/to/script')).pack()

答案 1 :(得分:1)

Python可以使用supbprocess模块​​运行shell脚本。要在后台运行它,您可以从新线程启动它。

使用模块

import subprocess
...
subprocess.call(['./yourScript.sh'])

对于一个好的python线程资源,您可以尝试:How to use threading in Python?

答案 2 :(得分:1)

添加@lakesh所说的内容,下面是完整的脚本:

import Tkinter
import subprocess

top = Tkinter.Tk()

def helloCallBack():
   print "Below is the output from the shell script in terminal"
   subprocess.call('./yourscript.sh', shell=True)


B = Tkinter.Button(top, text ="Hello", command = helloCallBack)

B.pack()
top.mainloop()

请注意,shell脚本与python脚本位于同一目录中。

如果需要,请执行chmod 777 yourscript.sh

subprocess.call('./yourscript.sh', shell=True)

import Tkinter以及 import tkinter解决了我所面临的问题。

答案 3 :(得分:0)

使用Tkinter创建按钮。有关详细信息,请观看此视频:http://www.youtube.com/watch?v=Qr60hWFyKHc

示例:

from Tkinter import *

root = Tk()
app = Frame(root)
app.grid()
button1 = Button(app,"Shell Script")
button1.grid()
root.mainloop()

添加功能: 将button1行更改为:

button1 = Button(app,"Shell Script",command=runShellScript)

def runShellScript():
    import subprocess
    subprocess.call(['./yourScript.sh'])