と私はライン・バイ・ライン処理のためにライン・バイ・ラインファイル処理、forループ対
with open('data.txt') as inf:
for line in inf:
#etc
対
をファイルを開くの 方法にこれらの間のトレードオフ/違いを理解しようとしています「と・ブロック」(スイート?) が終了する(または例外が打ち消された)ときfor line in open('data.txt'):
# etc
私はwith
を使用すると、閉じられたファイルを確実にすることを理解しています。だから私はwith
を使いました。私はここでそれについて学びました。 for
-loop再
:ネットの周りに検索するとSOから、for
-loopが終了したとき、ファイル が閉じているかどうかは実装に依存しているようですか?そして の例外をこの構文がどのように処理するかについては何も見つかりませんでした。誰か知っていますか?私は上記のものについて誤解していた場合
、私が今までに with
オーバーfor
構文を使用するには、理由があるそうでない場合は、 を修正をいただければと思いますか?
良い点..質問に選択肢があるとき、つまりバージョンによって制限されない私は質問を更新します。だから、あなたの投票は 'と'に行くだろう? – Levon
インデントは、指定されたコンテキストの下にあるセクションを指定するので、利点です。 finallyブロック内のファイルを閉じる以外はtryブロック内でブロック全体を囲むようにインデントする必要があります。 – jdi
@jdl良い点 - インデントの問題は私が提起したものではないことを知らせてください。リストとグループで数年前に気づいた。 –