键盘中断和os.system与subprocess.call

时间:2013-09-11 11:23:55

标签: python operating-system subprocess

我正在python中编写一个小CLI(在cmd模块的帮助下)。目前,我正在尝试将所有os.system次出现替换为subprocess.call

我面临的问题是,如果我使用os.system运行外部脚本,在点击 CTRL-C 之后,只有子shell终止(我回到我的CLI)。当我使用subprocess.call运行相同的脚本并点击 CTRL-C 时,脚本和我的CLI都会终止执行。

有没有办法用os.system模仿subprocess.call行为?

1 个答案:

答案 0 :(得分:5)

您可以使用异常处理程序捕获Python中的键盘中断:

try:
    retcode = subprocess.call(args)
except KeyboardInterrupt:
    pass # ignore CTRL-C