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并返

我想在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并返回到我的原始代码。。。 提前通知

这是我的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的代码很重要?难道不是剧本吗?