Как заявил S.Lott, 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()