Python:使用语句和执行选项处理
我给出以下代码片段, 在代码结束时,我得到了一个空白的输出文件 在with上下文中,当引发异常时,文件将关闭,并在下一次迭代中再次重写Python:使用语句和执行选项处理,python,with-statement,Python,With Statement,我给出以下代码片段, 在代码结束时,我得到了一个空白的输出文件 在with上下文中,当引发异常时,文件将关闭,并在下一次迭代中再次重写 with open('output', 'w') as f: try: for i in range(1, 100): if i % 2 == 0: f.write('%d \n' % i) else: raise Ex
with open('output', 'w') as f:
try:
for i in range(1, 100):
if i % 2 == 0:
f.write('%d \n' % i)
else:
raise Exception()
except Exception as e:
pass
我的理解正确吗?
如果是这样,为什么会出现这种行为?因为我正在处理异常
with
语句总是关闭文件,对吗
每当在侧块中引发异常时
使用带有语句的
有什么可能的解决方案?当使用尝试
/除
块时,尝试
块在除
块完成后不会继续
一个可能的解决方案是用pass
语句替换raiseexception()
语句,该语句当前正在引发一个无意义的异常
事实上,你可能应该读一读关于……的书。我被你的问题弄糊涂了。您是否在问,为什么在引发异常时,
的循环会结束,而不是继续下一个循环?您的问题是,为什么文件会被覆盖?如果是这样,答案是w
总是创建一个新文件。哦,是的,我知道了。错误:)