0

端末から次のプログラムを実行し、すぐに停止することにしたとしましょう。control-c を 5 回押す必要があります。1 つの control-c でプログラム全体が終了するようにするにはどうすればよいですか?

os.system("python run_me1.py -lines -s {0} -u {1}".format(args.start, args.until))
os.system("python run_me2.py -derivs -tt")
if args.mike: os.system("python run_me3.py -f derivs.csv tt.csv")
os.system("gnumeric derivs.csv")
os.system("gnumeric tt.csv")
4

1 に答える 1

3

これをキーボード割り込み例外でラップし、os.system を subprocess.call に置き換えます。

パス解決の便宜上、 shell=True 引数を入れましたが、これを行う前に無効にする必要があるセキュリティ上の意味があることに注意してください。

import subprocess

try:
    subprocess.call("python run_me1.py -lines -s {0} -u {1}".format(args.start, args.until), shell=True)
    subprocess.call("python run_me2.py -derivs -tt", shell=True)
    if args.mike: subprocess.call("python run_me3.py -f derivs.csv tt.csv", shell=True)
    subprocess.call("gnumeric derivs.csv", shell=True)
    subprocess.call("gnumeric tt.csv", shell=True)
except KeyboardInterrupt:
    print("exiting early")
于 2013-09-14T06:37:01.567 に答える