ファイルを開くときの連鎖メソッドの場合、例:
indata = open(from_file).read()
open()
関数で開いたファイルハンドルを閉じる必要がありますか(または可能ですか) ?
そうでない場合は、代わりに次のことを行うのがベストプラクティスですか。
infile = open(from_file)
indata = infile.read()
infile.close()
ファイルを開くときの連鎖メソッドの場合、例:
indata = open(from_file).read()
open()
関数で開いたファイルハンドルを閉じる必要がありますか(または可能ですか) ?
そうでない場合は、代わりに次のことを行うのがベストプラクティスですか。
infile = open(from_file)
indata = infile.read()
infile.close()
ファイルオープン時の連鎖方式の場合
これは、ファイルを開くチェーン メソッドの落とし穴です。そのため、推奨される解決策は、with clause
. オブジェクトの存続期間はwithブロック内にあり、fileObj は自動的に閉じられます
with open(from_file) as fin:
indata = fin.read()
なぜそれが間違っているのですか?
他のコード片
infile = open(from_file)
indata = infile.read()
infile.close()
落とし穴もあります。