wihtの内側のブロックでだけオブジェクトやリソースを使用するときに使います。
with statement1:
statement2
最初にstatement1を実行して、このステートメントでオブジェクトやリソースを獲得します。
statemnet2(一連のステートメントでもよい)をじっこうしたあとで、オブジェクトやリソースは解放されます。
事前の処理(たとえばopen())とそれに対応した終了時の処理(たとえばclose())を実行 し、その間に本来必要な処理を行う必要があるファイルアクセスのような操作を行うときに は、with 文を使うことができます。
次の例は、withを使ってファイルを開いて使うコードの例です。
with open('text.txt', 'w') as f:
f.write(...)
ブロックの中のコードが実行されるとリソースが解放されるのt、ファイルを明示的に閉じる必要はありません。
これは次のコードを実行するのと同じです。
f = open('text.txt', 'w')
f.write(...)
f.close()