ファイルやネットワーク接続などのリソースに、コンテキストマネージャーが役立つのはなぜですか?
セットアップとクリーンアップをコードブロックに結び付け、リソースを確実に解放できるためです。
ブロック内のコードで例外が決して発生しないことを保証するためです。
すべての関数呼び出しをグローバル変数に置き換えるためです。
Pythonプロセスが強制終了されるまで、すべてのリソースを開いたままにするためです。