之前,我可以在解释器中通过按execfile("somescript.py")
而不杀死解释器来杀死以Ctrl + C
开头的python脚本。这会导致 KeyboardInterrupt
异常停止脚本,让我再次使用解释器。但是,现在(我怀疑这是python的更新版本),当我在运行脚本时按Ctrl + C
时,它有时也会杀死解释器,让我回到Linux命令行。出于某种原因,每次使用Ctrl + C
杀死脚本时都不会发生这种情况。
这很烦人,因为我经常以交互方式使用python解释器,即我使用execfile("somescript.py")
运行一些脚本,使用它在解释器中生成的数据等等。之前,如果某些脚本卡住,我就能够在被卡住之前杀死它并且不会丢失它已计算的数据(或者我存储在变量中)。
所以我的问题是,如何在解释器中杀死一个以execfile()
开头的python脚本而不杀死解释器?
答案 0 :(得分:0)
通常,这是通过try
语句完成的:
>>> def f():
... try:
... exec(open("somefile.py").read())
... except Exception as e: print(e)
...
>>> f()
^CTraceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 3, in f
File "<string>", line 4, in <module>
File "<string>", line 3, in g
KeyboardInterrupt
>>>
somefile.py
:
def g():
while True: pass
g()