2016-04-26 19 views
1

Ich mag die Befehle, die eine Python-Datei mit Konsole ausführen in einem unabhängigen Fenster sindKonsole in einem neuen Fenster

mein Code:

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]) 

es ist möglich?

Tank

+0

Nicht ganz sicher, was Sie fragen. Vielleicht suchen Sie nach dem Modul [subprocess] (https://docs.python.org/3.5/library/subprocess.html)? –

Antwort

1

Sie können dies mit dem Subprozessmodul realisieren.

import subprocess 

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

In diesem Beispiel habe ich "gnome-terminal" als Terminalemulator verwendet. Auf Ihrem System ist dieser Emulator möglicherweise nicht vorhanden und Sie sollten ihn durch den verwendeten ersetzen (z. B. Konsole für KDE). Sie müssen dann auch den entsprechenden Parameter (in diesem Fall "-x") finden, um den Befehl auszuführen, wenn Sie den Emulator öffnen.

0

Um dies zu erreichen, können Sie entweder subprocess oder os.system() verwenden.

Je nachdem, was Sie verwenden, die Bash-Befehl, dies zu tun wäre:

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

für subprocess:

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

für 'os.system()'

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

Es wird empfohlen, subprocess.call() für etwas komplexeres als einfache Befehle wiezu verwendenist veraltet.

+0

i verwenden, enigma2, auf Feld, dieses Plugin für E2 –

+0

keine Arbeit .. Code def Update (Selbst-): \t \t os.system ("gnome-terminal -e sh /usr/script/update.sh ") –

+0

@paolozanone yup sorry! Sie brauchen Zitate um den Befehl –

Verwandte Themen