2016-06-28 29 views
0

我用用尾巴輸出從解算器列表:如何啓動尾部的konsole與子

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

這個叫解算器上市是GNOME輸出,但在KDE僅僅只有終端(konsole)已啓動,但沒有執行尾部。所以可能我必須相應地替換「-e」和「tail -f」。任何想法的權利呼籲?

回答

0

我自己找到了解決方案。一個必須使用:

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

所以關鍵是「$ SHELL」和「-c」添加到呼叫