入出力・エラーと例外・クラス・標準ライブラリ・対話環境(7,8,9,10,14章)
非常にサイズの大きいテキストファイルを1行ずつ処理したい場合、メモリ効率の観点から最も適切な方法はどれか。
- ✓for line in f: のようにファイルオブジェクトを直接イテレートして1行ずつ処理する
- Bf.readlines()で全行をリスト化してからfor文で処理する
- Cf.read()でファイル全体を文字列として読み込み、split('\n')で分割する
- Dwhile True: とf.read(1)を組み合わせて1文字ずつ読み込む
解説
ファイルオブジェクトを直接forループでイテレートすると、内部で1行ずつ読み込みながら処理するため、ファイル全体を一度にメモリへ展開する必要がなく効率的である。
根拠7章 入出力(ファイルオブジェクトの反復処理)