2016-06-28 4 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のみ端末のみで(コンソール)が始動しますが、尾は実行されません。だからおそらく私はそれに応じて "-e"と "tail -f"を置き換えなければなりません。適切な呼び出しのための任意のアイデア?

答えて

0

自分で解決策を見つけました。一つは、使用する必要があります:

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

ので、鍵はコール

に「$ SHELL」と「-c」を追加しました