我有一个python脚本,它具有向用户发送电子邮件的功能。我执行了这个脚本,它工作正常。在另一个python脚本中我只有一个按钮,所以当我点击这个按钮时,我想要另一个发送电子邮件执行的python脚本。我写了以下代码:
#!/usr/bin/python
import sys
import os
import Tkinter
import tkMessageBox
top=Tkinter.Tk()
def helloCallBack():
os.system('SendEmail.py')
B=Tkinter.Button(top,text="hello",command= helloCallBack)
B.pack()
top.mainloop()
点击按钮后出现以下错误:
sh:1:SendEmail.py:找不到。
您能告诉我这个错误的原因是什么以及如何解决。谢谢。
答案 0 :(得分:7)
我能够找到一种方法在按钮点击时调用另一个python脚本:
而不是使用os.system('SendEmail.py')我们需要使用os.system('python SendEmail.py')
答案 1 :(得分:2)
如果您的SendEmail.py
位于同一位置,请使用os.system('SendEmail.py')
。如果它位于其他位置,请使用os.system('python SendEmail.py')
。
答案 2 :(得分:0)
import sys
import os
from tkinter import *
window=Tk()
window.title("Running Python Script")
window.geometry('550x200')
def run():
os.system('opencv_video.py')
btn = Button(window, text="Click Me", bg="black", fg="white",command=run)
btn.grid(column=0, row=0)
window.mainloop()
答案 3 :(得分:0)
#!/usr/bin/python
import sys
import sys
import os
import Tkinter
import tkMessageBox
top=Tkinter.Tk()
def helloCallBack():
os.system('python SendEmail.py')
B=Tkinter.Button(top,text="hello",command= helloCallBack)
B.pack()
top.mainloop()
使用关键字“ python”运行命令
答案 4 :(得分:0)
作为一个业余爱好者,我真的没有资格提供建议。这就是我的方法。
我也想做这种事情。我大约有16个小python程序,它们制作html,复选框集,单选按钮集,文本输入字段,html表格等。
在另一个线程中,注释非常不赞成使用os.system调用。不知道为什么,但是我想我会尝试另一种方法。
我刚刚开始学习tkinter,因此我将每个“ makehtml”功能都运行在一个窗口中。
现在我想要一个带有按钮的主窗口。单击一个按钮,将打开另一个窗口,例如复选框窗口,或用于制作html的任何其他窗口。
我制作了一个模块:guiHTML.py我所有的'makehtml'函数都在其中。
在主窗口中导入guiHTML。
import os, sys
# to import the files we need the paths
path = '/home/pedro/myPython/myModules/'
# append the paths
sys.path.append(path)
import tkinter as tk
from functools import partial
import guiHTML
然后,在主窗口中为每个按钮创建如下功能:
def openCheckboxes():
#call the checkboxes function defined in the guiHTML module
guiHTML.checkboxes()
然后,在复选框按钮中输入以下内容:
btn3 = tk.Button(frame1, text='insert checkboxes', command=openCheckboxes)
btn3.grid(columnspan=2, column=0, row=2, sticky='w', pady=10)
单击btn3,然后打开复选框窗口。
这对我有用,但是我不知道这是否是一个好方法。我只是一个月前开始使用tkinter。
如果有更好的方法可以做到这一点,我很高兴听到您的专家意见!
答案 5 :(得分:-1)
#!/usr/bin/python
import sys
import os
import tkinter as tk
root = tk.Tk()
def helloCallBack():
os.system('call.py')
#Keep_both_files_in_the_same_Folder
b1=tk.Button(root, text="Calendar",bg="white",command=helloCallBack)
b1.pack()
root.mainloop()