2016-06-28 21 views
0

I tail den Eintrag aus einem Solver Ausgang bin mit ein: die Auflistung SolverWie Schwanz in konsole mit subprocess beginnen

outputListing = exportFileName.split(".pc")[0] + ".out" 
solver_run = subprocess.Popen([solver_path, "-visual", "-solvargs", "-nt 4 -fp 2", exportFilePath, outputListing]) 
if os.sep == "\\": 
    subprocess.Popen(["wintail",outputListing], shell = True) 
elif os.sep == "/": 
    if os.environ.get("DESKTOP_SESSION") == 'gnome' 
     subprocess.Popen(["gnome-terminal", "-e","tail -f " + outputListing]) 
    elif os.environ.get("DESKTOP_SESSION") == 'kde' 
     subprocess.Popen(["konsole", "-e","tail -f " + outputListing]) 

mit diesem Aufruf ausgegeben in GNOME, aber in KDE nur das einzige das Endgerät (konsole) wird gestartet, aber es wird kein Tail ausgeführt. Also muss ich wahrscheinlich "-e" und "tail -f" entsprechend ersetzen. Irgendwelche Ideen für den richtigen Anruf?

Antwort

0

Ich fand die Lösung alleine. Man muss verwenden:

subprocess.Popen(["konsole", "-e","$SHELL", "-c","tail -f " + outputListing]) 

so war der Schlüssel hinzufügen „$ SHELL“ und „c“ auf den Ruf