を終了していないだろう、私は次のPythonコードがあります。Pythonの実行システムコマンドとし、終了...
os.system("C:/Python27/python.exe C:/GUI/TestGUI.py")
sys.exit(0)
をそれは、コマンド罰金を実行し、ウィンドウがポップアップ表示されます。ただし、最初のスクリプトは終了しません。ただそこにとどまり、最終的にプロセスを強制終了する必要があります。エラーは発生しません。どうしたの?
を終了していないだろう、私は次のPythonコードがあります。Pythonの実行システムコマンドとし、終了...
os.system("C:/Python27/python.exe C:/GUI/TestGUI.py")
sys.exit(0)
をそれは、コマンド罰金を実行し、ウィンドウがポップアップ表示されます。ただし、最初のスクリプトは終了しません。ただそこにとどまり、最終的にプロセスを強制終了する必要があります。エラーは発生しません。どうしたの?
の代わりos.system
使用が終了します。
import subprocess
import sys
subprocess.Popen(["mupdf", "/home/dan/Desktop/Sieve-JFP.pdf"])
sys.exit(0)
os.system(command)
のようなことに注意してください:
p = subprocess.Popen(command)
p.wait()
ターミナルウィンドウ内から一番上のスクリプトを実行している場合は、スクリプトと 'cmd.exe'自体を終了した後でもこのウィンドウが開いてしまうことがあります!このウィンドウの内側からいくつかのバックグラウンドプロセスを開始しました。これらのプロセスが終了すると、ウィンドウが閉じます。 – spacediver
import sys ,subprocess
subprocess.Popen(["C:/Python27/python.exe", "C:/GUI/TestGUI.py"])
sys.exit(0)
Popen from subprocess moduleあなたが探しているもの。これは、コマンドを実行し、それを待たないとsubprocess.Popen
私が使用することをお勧めsys.exit
ではなくos._exit
の代わりにsys.exitはプログラムを終了しますが、例外レベルを上げる、または終了しますスレッド。 os._exit(-1)
はプログラム全体を終了します
KeyboardInterruptsとシグナルは、プロセス(メインスレッド)のみが認識します。何らかの種類のファイルの読み書きブロックによってネストされたコマンドがハングアップすると、キーボードコマンドを使用してプログラムを終了することはできません。
Why does a read-only open of a named pipe block?
ディスク・ブロックのソースを排除することができない場合は、その一つの方法は、あなたがそれを殺す強制することができますので、スレッドでの処理をラップすることです。しかし、これを行うと、半分書いたファイルや破損したファイルをディスクに残すことができます。
try os._exit(0) – Eddie
問題は、コマンドが実行終了するまで 'os.system(command)'関数がブロックされていることです.OPが望むのは、コマンドが終了するのを待たずにコマンドを実行することです。 –
@ダンちゃん!私はそれが問題だと気づいただけです。 Pythonスクリプトが実行されているので、それはまだ "シェル"内で生きており、os.systemはシェルが終了するまで待たなければなりません。どうすればいい? –