2016-04-26 7 views
1

に私は、コンソール とのpythonファイルを実行するコマンドは、独立したウィンドウにあるたいコンソールは新しいウィンドウ

私のコード:

def update(self): 
     self.prombt("sh /usr/script/update.sh") 
     self.close(None) 

    def prombt(self, com): 
     self.session.open(Console,_("sTaRt ShElL cOm: %s") % (com), ["%s" % com]) 

ことが可能ですか?

タンクの

+0

あなたが何を求めているか完全にはわからない。おそらくあなたは[サブプロセス](https://docs.python.org/3.5/library/subprocess.html)モジュールを探していますか? –

答えて

1

あなたがサブプロセスモジュールを使用してこれを実現することができます。

import subprocess 

subprocess.call(["gnome-terminal", "-x", "sh", "/usr/script/update.sh"]) 

この例では、ターミナルエミュレータとして「gnome-terminal」を使用しました。あなたのシステムでは、このエミュレータを持っていない可能性があります。使用しているエミュレータに置き換える必要があります(KDEのKonsoleなど)。 また、エミュレータを開くときに、コマンドを実行するための適切なパラメータ(この場合は "-x")を見つける必要があります。

0

これを達成するには、subprocessまたはos.system()のいずれかを使用できます。あなたは、bashコマンドを実行するために使用するどちらの1

はそうだろう。

gnome-terminal -e sh /usr/script/update.sh 

subprocess用:用

import subprocess 
subprocess.call(["gnome-terminal", "-x", "sh", "/usr/script/update.sh"]) 

'os.system()'

import os 
os.system("gnome-terminal -e "sh /usr/script/update.sh"") 

単純なコマンドより複雑なものは、のようにsubprocess.call()を使用することをお勧めしますは古くなっています。

+0

私は、enigma2、ボックスに、E2 –

+0

がない仕事のために、このプラグイン.. コード デフ更新(​​自己)を使用します \t \t os.system(「gnome-terminalの-eのSHの/usr/script/update.shを") –

+0

@paolozanone yup申し訳ありません!コマンドの引用符が必要です –

関連する問題