2012-03-28 4 views
0

私はPythonコードでシステムコールを行いたいが、問題はそれが私の元のコードのシーケンスを壊すことである..Pythonのシステムコール

for ex。ここでは、事前に上記のPyGTKのコードで

def call_host(self): 
    self.builder.get_object("windowMain").show()   
    os.system('python Adder.py') 
    self.builder.get_object("window1").show() 

Adder.pyが次の行に呼び出されたら文句を言わない私はadder.pyを実行し、戻って私の元のコードに来るようにシステムをしたい実行... のthnx

は私です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() 
+0

あまりにも多くのコード... –

+0

Adder.pyのコードはなぜ重要ですか?それはどんなスクリプトでもありませんでしたか? –

答えて

1

のコードあなたがsubprocess.Popenを使用する場合は、サブプロセスが終了するまで、あなたのメインプログラムは「ブロック」せずに実行を継続します。

1

os.systemは、サブプロセスでコマンドを実行し、実行前に終了するまで待機します。親プロセスと並列に実行する場合は、subprocessモジュールを参照してください。特に、subprocess.Popenオブジェクトを作成することをお勧めします。

関連する問題