我正在python中编写一个小CLI(在cmd模块的帮助下)。目前,我正在尝试将所有os.system
次出现替换为subprocess.call
。
我面临的问题是,如果我使用os.system
运行外部脚本,在点击 CTRL-C 之后,只有子shell终止(我回到我的CLI)。当我使用subprocess.call
运行相同的脚本并点击 CTRL-C 时,脚本和我的CLI都会终止执行。
有没有办法用os.system
模仿subprocess.call
行为?
答案 0 :(得分:5)
您可以使用异常处理程序捕获Python中的键盘中断:
try:
retcode = subprocess.call(args)
except KeyboardInterrupt:
pass # ignore CTRL-C