from os.path import join
string=" Congratulations, you are about to embark upon one of life’s "
path=r"C:\Users\Nord.Kind\Desktop"
file="test.txt"
quit()
# This should not execute, but it does!!
with open(join(path,file),"w")as wfile:
wfile.write(string)
wfile.close()
在上面的代码示例中,即使退出后,该代码仍会执行写文件命令。
当我使用exit时,也会发生同样的行为。
我正在使用Spyder 3.6
每次我使用exit或quit时,内核都会重新启动。
有帮助吗?
答案 0 :(得分:1)
您可以使用SystemExit:
# Code that will run
raise SystemExit
# Code that will not run
sys.exit()也会引发此错误,但这不需要导入sys
。
答案 1 :(得分:1)
(此处为 Spyder维护者),您的问题包含此评论:
每次我使用exit或quit时,内核都会重新启动。
这就是我们用作后端执行用户代码的IPython内核的行为。这些命令会杀死内核,并迫使内核重新启动以保持其关联的控制台处于活动状态。恐怕您无能为力。
注意:在Jupyter笔记本中也是如此。
答案 2 :(得分:0)
一种方法是使用sys.exit()
代替quit()
import sys
... # code that executes
sys.exit()
... # this code won't execute
但是,正如@AranFey在注释中指出的那样,如果代码尝试执行未定义变量read
的最后一个参数,则代码将引发错误。