退出Python Os.System命令列表

时间:2013-09-14 06:28:11

标签: python terminal sys

假设我从终端运行以下程序,然后立即决定停止它,我将不得不按下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")

1 个答案:

答案 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")