"ファイルがPythonで閉じられるようにする"という標準的な答えは、デストラクタは "with"ブロックを終了するときに呼び出されます。をPythonで使用している場合は、 "with"を使用できないときにファイルが閉じられることを確認してください。
しかし、ファイルハンドルを大量のコードにまたがって開いておく必要があるため、そのようなことができない場合はどうですか?たとえば、オブジェクトコンストラクタでファイルハンドルを開いてオブジェクトプロパティに保存し、多くのオブジェクトメソッドでファイルハンドルを参照します。
ファイルハンドルのオープンをメソッド自体に移すことは可能ですが、基本的にはメソッドが呼び出されるたびにファイルをオープン/クローズすることになります。
オブジェクトデストラクタ( "del"メソッド)に "close"コマンドを配置しようとしましたが、これは機能しません。
デストラクタでファイルを閉じるのがなぜ機能しないのですか?あなたはそれを完了したときにオブジェクトが破壊されていませんか?エラーが発生しても失敗した場合、 'try'-'except' -'finally'ブロックでラップすることができます。 – JohanL
カーネルを強制終了してプログラムを終了します(Spyderの大きな停止ボタンを押すなど)。その場合に何が実行されるのかわかりません。 – Stephen
try/except/finallyはもう一度、 "open"コマンドがコンストラクタにありますが、プログラムが移動して他のメソッドからの書き込みを開始するため、おそらく動作しません – Stephen