';与';在python 2.5之前的版本中

';与';在python 2.5之前的版本中,python,legacy,with-statement,Python,Legacy,With Statement,是否有一种方法可以将python的“with”语句转换为可以在python的早期版本中使用的格式。关于这个问题的四个月的工作。与以前的同行相比,他们的效率会更高,但效率在这里并不重要 使用尝试:除了:最后: finally:子句可以处理关闭 请参阅以获取备选方案。使用尝试:除外:最后: finally:子句可以处理关闭 如S.Lott所述,尝试并最终应处理with子句的工作。我不确定with是否真的捕捉到任何错误,因此假设: with open(file_name,mode) as name:

是否有一种方法可以将python的“with”语句转换为可以在python的早期版本中使用的格式。关于这个问题的四个月的工作。与以前的同行相比,他们的效率会更高,但效率在这里并不重要

使用
尝试:
除了:
最后:

finally:
子句可以处理关闭


请参阅以获取备选方案。

使用
尝试:
除外:
最后:

finally:
子句可以处理关闭


如S.Lott所述,尝试并最终应处理with子句的工作。我不确定
with
是否真的捕捉到任何错误,因此假设:

with open(file_name,mode) as name: # Or whatever expression
    do_this()
可以替换为

try:
   name = open(filename,mode)   # Or whatever expression
   do_this()
finally:
   name.close()

正如S.洛特所说,try和finally应该处理with条款的工作。我不确定
with
是否真的捕捉到任何错误,因此假设:

with open(file_name,mode) as name: # Or whatever expression
    do_this()
可以替换为

try:
   name = open(filename,mode)   # Or whatever expression
   do_this()
finally:
   name.close()

如果不是
finally:if name:name.close()
?否,对name的赋值应该发生在try块之外。如果不是
finally:if name:name.close()
?否,对name的赋值应该发生在try块之外。