ファイルのすべての行を読み込み、 の文字列のリストとして保存したいとしましょう。 私が使用することができますファイルハンドルに名前があるため、私はそれをどのようにリスト内のファイルハンドルを閉じる
filename = "/path/to/the/file/data.txt"
fileBuf = [line.strip() for line in open(filename, "r")]
私の質問を閉じますか? 自動的に閉じますか?
ファイルのすべての行を読み込み、 の文字列のリストとして保存したいとしましょう。 私が使用することができますファイルハンドルに名前があるため、私はそれをどのようにリスト内のファイルハンドルを閉じる
filename = "/path/to/the/file/data.txt"
fileBuf = [line.strip() for line in open(filename, "r")]
私の質問を閉じますか? 自動的に閉じますか?
おそらくガベージコレクトされていますが、with
コンテキストを使用することをお勧めします。あなたも、1行でそれを行うことができます:このことができます
with open(FILENAME, 'r') as f:
fileBuf = [line.strip() for line in f]
希望:
with open(filename, "r") as f: fileBuf = [line.strip() for line in f]
効果的なコードブロック、コロンのため、それはスコープと問題が解決されるだろうか? –
次の行でファイルが閉じられていることが保証されます。 '' f.close() 'を試してみてください:) –
良いもの。乾杯: –
あなたはwith
声明に コードを使用することができます!
ユーザーの質問は: "...ファイルハンドルに名前がないので、どのように閉じますか?自動的に閉じますか?" –
@AlexLuisArias:なぜあなたはここで厳しいのか分かりませんが、他の答え(まったく同じです)にはコメントしないでください。 –
私たちは同時に両方を追加しました。私はもう一方のユーザーも同じことを書いていることに気づいていませんでした。理解のために@ウィレム・ヴァン・オンセムに感謝します! :) –
あなたはリストの理解の外にそれを開き、リストの理解の外にそれを閉じなければなりません。 –
別のonelineコンテキスト: 'open(filename、" r ")をf:fileBuf = [fの行のためのline.strip()] –
だから、' open(filename、 "r" ).close() 'これを終了時に強制的に実行しますか? –