python中的系统调用
我想在python代码中进行系统调用,但问题是它破坏了我原始代码的顺序 例如python中的系统调用,python,system-calls,os.system,Python,System Calls,Os.system,我想在python代码中进行系统调用,但问题是它破坏了我原始代码的顺序 例如 def call_host(self): self.builder.get_object("windowMain").show() os.system('python Adder.py') self.builder.get_object("window1").show() 在上面的pygtk代码中,一旦调用Adder.py,下一行将不会执行,我希望系统执行Adder.py并返
def call_host(self):
self.builder.get_object("windowMain").show()
os.system('python Adder.py')
self.builder.get_object("window1").show()
在上面的pygtk代码中,一旦调用Adder.py,下一行将不会执行,我希望系统执行Adder.py并返回到我的原始代码。。。
提前通知
这是我的Adder.py代码
import sys
try:
import pygtk
pygtk.require("2.0")
except:
pass
try:
import gtk
except:
print("GTK Not Availible")
sys.exit(1)
class adder:
result = 0
def __init__( self, number1, number2 ):
return None
def giveResult( self,number1,number2 ):
self.result = int( number1 ) + int( number2 )
return str(self.result)
class adderGui:
def __init__( self ):
self.builder = gtk.Builder()
self.builder.add_from_file("Adder.glade")
dic = {
"on_buttonQuit_clicked" : self.quit,
"on_buttonAdd_clicked" : self.add,
"on_windowMain_destroy" : self.quit,
}
self.builder.connect_signals( dic )
def add(self, widget):
entry1 = self.builder.get_object ("entry1")
entry2 = self.builder.get_object ("entry2")
try:
thistime = adder( entry1.get_text(), entry2.get_text() )
except ValueError:
self.builder.get_object("hboxWarning").show()
self.builder.get_object("entryResult").set_text("ERROR")
return 0
self.builder.get_object("hboxWarning").show()
#self.builder.get_object("image1").hide()
self.builder.get_object("entryResult").set_text(
thistime.giveResult(entry1.get_text(), entry2.get_text())
)
def quit(self, widget):
sys.exit(0)
adderGui = adderGui()
gtk.main()
如果使用
subprocess.Popen
,主程序将继续运行而不会“阻塞”,直到子进程终止。os.system
将在子进程中运行命令,并等待它完成后再运行。如果希望与父进程并行运行,那么应该查看子进程
模块——特别是,您需要创建一个subprocess.Popen
对象。为什么Adder.py的代码很重要?难道不是剧本吗?