假设我从终端运行以下程序,然后立即决定停止它,我将不得不按下control-c 5次。如何使一个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")
答案 0 :(得分: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")